{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# !pip install -U openmim\n",
    "# !mim install mmengine\n",
    "# # !mim install 'mmcv>=2.0.0rc1'\n",
    "# !mim install 'mmcv==2.0.0rc3'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "from sklearn.utils import shuffle\n",
    "# from sklearn.metrics import jaccard_similarity_score"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "##　数据下载\n",
    "\n",
    "这份数据是之前在知乎看到的，放一下链接和下载链接\n",
    "［知乎链接］（https://zhuanlan.zhihu.com/p/95518858）\n",
    "［下载链接］（https://link.zhihu.com/?target=https%3A//github.com/akkaze/datasets/raw/master/m2nist.zip）"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "#＃　数据介绍和EDA\n",
    "\n",
    "数据主要由三部分构成，分别是\n",
    "1. `combined.npy` 数字图片\n",
    "2. `segmented.npy` 掩码图片\n",
    "3. `bbox.txt` 数字的box位置和数字的值，0-10"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "outputs": [],
   "source": [
    "data_dir = 'data/m2nist'\n",
    "X = np.load(f'{data_dir}/combined.npy')\n",
    "y = np.load(f'{data_dir}/segmented.npy')\n",
    "\n",
    "SEGMENTATION_TYPE = ['ALL_DIGITS', 'BINARY'][0]\n",
    "if SEGMENTATION_TYPE == 'BINARY':\n",
    "    num_classes = 2\n",
    "    # Collapse per-pixel labels into digit vs non-digit.\n",
    "    y = np.max(y,axis=3)\n",
    "    y=np.stack((y==1,y==0),axis=-1)\n",
    "elif SEGMENTATION_TYPE == 'ALL_DIGITS':\n",
    "    num_classes = 10"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "数字图片和掩码图片各自5000张，长宽为64x84"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(5000, 64, 84) (5000, 64, 84)\n"
     ]
    }
   ],
   "source": [
    "print(X.shape, y.shape)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "outputs": [],
   "source": [
    "X = X.astype(np.float32)\n",
    "y = y.astype(np.float32)\n",
    "\n",
    "# #Shuffle\n",
    "# X,y = shuffle(X,y)\n",
    "#\n",
    "# # Normalize\n",
    "# X -= 127.0\n",
    "# X /= 127.0"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "outputs": [
    {
     "data": {
      "text/plain": "(4.0, 10.0)"
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array(y[1]).min(),np.array(y[1]).max()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "outputs": [
    {
     "data": {
      "text/plain": "(0.0, 255.0)"
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array(X[1]).min(),np.array(X[1]).max(),"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "outputs": [
    {
     "data": {
      "text/plain": "array([[0., 0., 0., ..., 0., 0., 0.],\n       [0., 0., 0., ..., 0., 0., 0.],\n       [0., 0., 0., ..., 0., 0., 0.],\n       ...,\n       [0., 0., 0., ..., 0., 0., 0.],\n       [0., 0., 0., ..., 0., 0., 0.],\n       [0., 0., 0., ..., 0., 0., 0.]], dtype=float32)"
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X[1]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 数据可视化\n",
    "随机获取10张图片，分别可视化“数字+掩码”，“数字”，“掩码”\n",
    "可以看到，每张图中至少有两个数字，但是有点mask中是没有数字的"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "outputs": [],
   "source": [
    "n = 10\n",
    "indices = np.random.randint(low=0, high=len(X), size=n)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 800x2400 with 30 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAAkpCAYAAAA94vqRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXhU5f3//9dkYRLIwpoEJOwgIFF2iFi0SlnqhqBA1RYQtWqkAi6IPyHECoitQlUEsRZtFbS0gksF1IigH0ARsAUUDLJFMGFP2DKEzPn94TdjVpKZMzNnlufjuua6yD33uc/7TGbe5D33fc6xGYZhCAAAAABMiLA6AAAAAADBj8ICAAAAgGkUFgAAAABMo7AAAAAAYBqFBQAAAADTKCwAAAAAmEZhAQAAAMA0CgsAAAAAplFYAAAAADCNwgIIIK+++qpsNptsNpv27t1b6fmrrrpKNptNV111ld9jq8r06dNd8SLw1PR+CqRY/PHeDqTXAz9p1aqVbDabxowZY3UoALyAwgIAAACAaRQWAMrhW12EqzFjxshms6lVq1ZWhwIAQYnCAggin376qQzD0Keffmp1KJJ+WgplGIYMw7A6FAQ5f7y3x4wZ43q/UjwAgPdRWAAIOqWzKvxxCABA4KCwAAAAAGAahQXgR8ePH9ejjz6qjh07KjY2VklJSRowYICWLl1aq+1re+Wcv//977ryyivVoEEDxcXFKS0tTU888YQKCwslyXUOxfTp013bfPrpp7LZbBo7dqyrrXXr1q6+pY+yS1Vqc1WoTz75RL/5zW/UunVrxcbGqm7dumrZsqX69u2rhx56SJ988kmtjt2bKh7/6tWrNXToUDVr1kyxsbHq1KmT/vjHP+r06dPltvvggw/061//2tWvc+fOmjVrls6dO1ftvs6dO6f33ntP999/v3r16qUGDRooOjpajRo1Up8+fTR9+nQdOXKkxph99Tru27dPHTp0kM1mU3x8vLKzsz0aJ5Df26WqO3+o9H382muvSfrpNan4vq/qPe6r30nFz1VhYaGmT5+utLQ0xcXFKSkpSb/+9a+1bt26ctsdOnRIjz/+uC655BLVq1dPjRo10o033qgtW7ZccH+7d+/WM888o+uvv16tWrVSbGysYmNj1bJlS40cOVIrV66sMeYTJ05oxowZSk9Pd73HmzRpos6dO+umm27S/PnzlZ+f79HrMXPmTNfrMWzYMDkcjnLPB2KOAcKWAcAvvvnmG6NZs2aGpCofY8eONRYtWuT6ec+ePZXGuPLKKw1JxpVXXlnlPs6dO2fceOON1e6jffv2xt69e10/Z2ZmurZdvXp1tduVfaxevdq1TWZmpqu9KhMmTKhxvEaNGrn9Wpa+Ti1btnR7W8Mwyh3/rFmzDJvNVmVsl19+uXHq1CnD6XQaf/jDH6o9hsGDBxvnz5+vcl+jR4+u1Wvw+eefVxuvp69jTe+nb775xmjevLlr+y+++MKj1zPQ39s1vR5l38cXepTlq/d2xXj2799vdOjQocrxIyMjjX/+85+GYRjGf//7X+Oiiy6qsp/dbjc++eSTKve1e/fuWh377bffbhQXF1c5Rk2//9LH888/X2nbli1bGpKM0aNHV3rO6XQaDz74YLn3UcXPmS9/DwDcFyUAPldYWKhBgwbp4MGDkqSRI0dq9OjRSkpK0nfffadnn31WixYt0rZt20zt54EHHtA777wjSbrkkkv00EMPqUuXLiosLNSyZcs0f/58jRw5sspte/Xqpa1bt+qdd97R448/LklatWqVmjVrVq5f69ataxXL+++/r7lz50qSLr30Ut17773q1KmTEhMTdeLECW3fvl0ff/yxvvzySw+P1rwVK1boyy+/VHp6usaPH68OHTroyJEj+stf/qIVK1Zo3bp1mjVrlho2bKjnnntOQ4YM0Z133qlWrVrphx9+0KxZs7RhwwatXLlSL7/8su65555K+zh//rzatGmjm266Sb1791aLFi0UFRWlffv26eOPP9bf/vY3HT16VDfddJO2bdumpKSkctv76nXcuHGjhgwZoqNHj6pZs2b66KOP1LlzZ7dfw2B4b9fkvvvu080336zHH39c77zzjpo1a6ZVq1ZV29+f7+1bbrlFP/zwg6ZMmaLBgwerbt26+vzzz5WZmanCwkKNGzdOPXv21HXXXaezZ89qxowZuvLKKxUdHa2VK1dqxowZcjgcGjNmjHJyclSnTp1y45eUlKhOnToaNGiQfvWrX6lz585q2LChjh07pu+++07z5s3T9u3b9frrr6tNmzbKysqqFONvf/tbHTx4UNHR0brrrrs0ZMgQpaSkyOl06ocfftCGDRu0bNkyt467pKREd911lxYtWiRJmjhxop555plyM0fBkGOAsGN1ZQOEg4ce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dHHBe9vc78RqhYWFeuuttyRJt912m5YtW6brr79eLVu2VGxsbLliseISvapcc801mjdvnrZt26bDhw/rzTff1NVXXy1J+v777y94OeB27dopOztbTZo00ZkzZ3Tttdfq//7v/2p1HMH+ewBCCYUF4GNpaWmuf2/cuPGCfWt6vjoxMTGuK8KUfvtYna+++uqCz/vym+eIiAh1795df/zjH8vd4fmf//ynz/Zppe3bt0v66QTvjh07Vtuvpt9JRZ6+js8//7x+//vfS5L+9a9/6fbbb69yeUxtBdt7uyZm3vvB+N7OyclxXSzgQn/079ixQ6dOnXJr7EaNGmnkyJHKzs7WDTfcIEn6+uuvlZOTU+02l1xyibKzs9W4cWOdOnVKQ4YM0fr1693abzD+HoBQQmEB+FiPHj1c3+z+4x//qHIpgfTT1P2HH37o8X6uueYaSdKWLVtcf9BW5e9///sFxym9NKUkORwOj+OpSffu3V2vS8UTQkNF6YzA6dOnq+3z448/6t133/V4H+68jjabTfPnz3dd3vatt97S7373OzmdTo/2HWzv7ZqUvvfNvu+D5b1ddsbqQu/RBQsWmNpP6e9Pqvn1SEtL08cff6yGDRvq5MmTGjx4sMc3uAuW3wMQSigsAB+z2+2uqxh9/fXX+tOf/lSpz/nz53XXXXfVeOLkhdx9992ub1zvuuuuKk+y/Pe//13jHXDLXj7SzCUc33rrrSpjKPXVV1+5llfU9m7ewab0Mp85OTlat25dpefPnDmjW2+99YKvk7dfR5vNpoULF7rek4sXL9aYMWM8Ki6C7b1dk9L3/qFDh6q9gpIUOu/tdu3auV7X1157rcrC8L333tMLL7xQ7Rhff/21vv7662qfNwzDdblgm81Wq3umXHbZZfr444/VoEEDFRYWauDAgVXORoXK7wEIJVFWBwCEg2nTpumf//ynfvjhB02ePFlff/21fve73ykpKUnfffednn32WW3cuFE9e/b0eDlHjx49dNddd2nhwoVav369evXqpYcfflhdunRRYWGh3n77bc2fP1+9e/d2fQNY1dKPbt26KSYmRkVFRZo6daqio6PVsmVL15VlLrrooipvUFbR5MmTdc899+jGG29U//791aFDB9WrV09Hjx7V559/rueff17STzejK/0GPdT89re/1fPPPy+n06lrr71WDz/8sK644grFxMRo06ZNmjNnjnJyctSvX79q15P74nW02Wz661//qpKSEv3973/XP/7xD0VFRemVV15xezlQML23a3L55ZdL+umyv/fcc4/Gjx+vxo0bu55v166dpNB5bzdq1Ei//vWv9Z///EcrV67UwIEDde+996ply5Y6dOiQ/v3vf+vVV19VmzZtdOLEiSrPYfn66681duxY9erVS9dff726d++ulJQUFRcXa8+ePVq0aJE++ugjSdINN9xwwZvxldWtWzd99NFHGjBggE6cOKGBAwcqOztb3bp1c/UJld8DEFL8fq9vIExt27bNSElJMSRV+RgzZoyxaNEi18979uypNMaVV15pSDKuvPLKKvfhcDiM6667rtp9tG7d2ti1a5fr56eeeqrKcR555JFqx1i9erWrX2Zmpqu9opYtW1Y7RunDbrcbixYtcvu1LH2dWrZs6fa2hmG49p+ZmVltnz179rj6XSjG1atXV/nalMrKyrrga/Dggw9e8Pdu5nWs6f1UUlJi3Hbbba4+d955p+F0Oqs91uoEy3u7Nq9H3759q91HKV++tw3jwp+rskaPHl2rz8GFXtv9+/cbLVq0qPY4WrRoYWzfvt11zKNHjy63fdnX9EKPyy+/3Dhy5Eil/Vc3bqkvvvjCSEhIMCQZDRs2NL7++utK2/rq9wDAfSyFAvzkkksu0fbt2/XII4+offv2stvtaty4sX75y19q8eLFWrRokel91KlTR++++64WLVqkK664QomJiapbt646deqkxx57TJs2bXLdQVeS69KMFT311FN6+eWX9Ytf/EINGzZUZGSk27GsXr1af/nLXzR8+HClpaWpSZMmioqKUkJCgrp166aHHnpI33zzjcaMGePp4QaFadOm6T//+Y8GDhyoBg0aqE6dOmrevLmGDRumDz/8UH/+858vuL0vX8eIiAi99tprrrs7//Wvf9W9995b7bkS1Qmm9/aFRERE6MMPP9Tjjz+uyy67THFxcVXOfITSezs1NVWbN2/Www8/rA4dOshutysxMVGXXXaZMjMz9fXXX6tz587Vbv+b3/xGH3zwgSZOnKgrrrhCrVu3Vt26dV3v8xtuuEFvvPGGPvvss3K/n9rq3bu3Vq1apfj4eB07dkwDBgxw3ZgxlH4PQKiwGe7+D4Kg8Oqrr2rs2LHas2dPrda0Inx8/vnnrjvlfvzxx+VO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wDQKixD06quvymazae/evVaHAiBAkBcAVERegLdRWCCgLVu2TIMGDVKzZs1kt9vVvHlz3Xzzzdq2bZvVoQGwCHkBQEXkhcBgMwzDsDoIeFdJSYmKi4tlt9tls9msDseUJ554Qt988426deumxo0bKy8vT3/729/0448/av369brsssusDhEICuQFABWRF+BtFBYIOvn5+WrevLnGjRunBQsWWB0OgABAXgBQEXnB/1gKFYIqrpls1aqVrrvuOn366afq2bOnYmNjlZaWpk8//VSS9PbbbystLU0xMTHq0aOHtmzZUm68//3vfxozZozatGmjmJgYpaSk6I477tDRo0cr7bt0HzExMWrbtq1eeuklTZ8+vcpvQl5//XX16NFDsbGxatiwoUaNGqXc3Nwajy8pKUl169bViRMn3H5tgHBFXgBQEXkB3hZldQDwj127dunWW2/V73//e91+++3685//rOuvv14LFizQY489pvvuu0+SNGvWLI0YMUI7d+5URMRPdedHH32k3bt3a+zYsUpJSdH27du1cOFCbd++XRs2bHAlgS1btmjw4MFq2rSpsrKyVFJSoieeeEJNmjSpFM+MGTM0depUjRgxQnfeeacOHz6s559/Xv3799eWLVtUv379cv1PnDih4uJi5eXlae7cuSosLNQ111zj2xcNCHHkBQAVkRdgioGQs2jRIkOSsWfPHsMwDKNly5aGJGPdunWuPqtWrTIkGbGxsca+fftc7S+99JIhyVi9erWr7cyZM5X2sWTJEkOSsXbtWlfb9ddfb9StW9c4cOCAqy0nJ8eIiooyyr7V9u7da0RGRhozZswoN+bWrVuNqKioSu2GYRgXX3yxIcmQZMTFxRmPP/64UVJSUvsXBQhz5AUAFZEX4G0shQoTnTt3Vnp6uuvnPn36SJKuvvpqtWjRolL77t27XW2xsbGufxcVFenIkSPq27evJGnz5s2SfjoB7OOPP9bQoUPVrFkzV/927dppyJAh5WJ5++235XQ6NWLECB05csT1SElJUfv27bV69epK8S9atEgrV67Uiy++qE6dOuns2bMqKSnx+PUAQF4AUBl5AWawFCpMlE0GkpSYmChJSk1NrbL9+PHjrrZjx44pKytLb775pg4dOlSuf0FBgSTp0KFDOnv2rNq1a1dp3xXbcnJyZBiG2rdvX2Ws0dHRldrKJrlR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AJhGsAAAAABgGsECAAAAgGkECwAAAACmESwAAAAAmEawAAAAAGAawQIAAACAaQQLAAAAAKYRLAAAAACYRrAAAAAAYBrBAgAAAIBpBAsAAAAAphEsotSf/vQnuVwu7dq1y+5SADgAPQFAXfQFWI1ggYjzk5/8RC6XS/fcc4/dpQBwAHoCgLroC/YgWESpX/ziFzpx4oQ6d+5sdymWevXVV7V+/Xq7ywAiDj0BQF30BViNYBGl4uPjlZSUJJfLZXcplqmsrNSvf/1rTZkyxe5SgIhDTwBQF30BViNYRKm650126dJF1113nVavXq1+/fopOTlZffr00erVqyV9n+779OmjpKQkZWdna8uWLX7jffrppxozZozOOeccJSUlKTMzU7fffru+++67evs+tY+kpCR169ZNCxcu1IwZMxpsXC+88IKys7OVnJysli1b6qabblJxcXGDx/T444/L6/XqvvvuM/fNAWIQPQFAXfQFWC3B7gIQPtu3b9ctt9yiu+66S7feeqt+97vfadiwYVqwYIEeeugh/epXv5IkFRQUaNSoUSoqKlJc3PfZ87333tOOHTs0duxYZWZm6vPPP9eiRYv0+eefa8OGDb5GsGXLFg0dOlTt2rVTfn6+ampqNHPmTLVp06ZePY8++qimTp2qUaNG6b//+7914MAB/eEPf9AVV1yhLVu2qHnz5r519+zZo8cee0zPPvuskpOTQ//NAmIAPQFAXfQFmGIgKi1evNiQZOzcudMwDMPo3LmzIclYt26db50VK1YYkozk5GRj9+7dvuULFy40JBnvv/++b9nx48fr7eOll14yJBlr1671LRs2bJjRtGlTY+/evb5l27ZtMxISEoza/9x27dplxMfHG48++qjfmFu3bjUSEhLqLb/++uuNSy+91Pe1JCM3N7eR3w0A9AQAddEXYDVOhYohvXr1Uk5Oju/rAQMGSJKuvvpqderUqd7yHTt2+JbVTv6VlZU6ePCgLrnkEknSxx9/LEmqqanRP/7xDw0fPlzt27f3rX/uuefqv/7rv/xqefXVV+X1ejVq1CgdPHjQ98rMzFT37t31/vvv+9Z9//339be//U2FhYVmvwUAaqEnAKiLvgAzOBUqhtRuCJKUnp4uScrKympw+eHDh33LDh06pPz8fC1dulT79+/3W7+srEyStH//fp04cULnnntuvX3XXbZt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ZjRt2tTYu3evb9m2bduMhIQEo/Y/t127dhnx8fHGo48+6jfm1q1bjYSEBL/lhYWFxj333GO8+OKLxl//+ldjwoQJRkJCgtG9e3ejrKws8G8OEIPoCQDqoi/AagSLKNVQs+jVq5ffOkeOHDEkGddee63f8k8++cSQZDzzzDMNjn3ixAnjwIEDxs6dOw1JRmFhoWEYhnHy5EkjOTnZuOWWW+ptM2zYML9m8cQTTxgul8vYtm2bceDAAb9Xz549jUGDBp3x+F588UVDklFQUHDW7wUAegKA+ugLsBqnQsWQTp06+X2dnp4uScrKympw+eHDh33LDh06pAkTJigjI0PJyclq06aNunbtKkkqKyuTJO3fv18nTpzQueeeW2/fdZdt27ZNhmGoe/fuatOmjd/ryy+/1P79+894LLfccosyMzP1j3/8ozGHDqAB9AQAddEXYAZ3hYohp7vzw+mWG7XOhxw1apTWrVun+++/XxdeeKFSUlLk9Xo1dOhQv/MrG8vr9crlcmn58uUN7r/2reJOJysrS4cOHQp43wC+R08AUBd9AWYQLHBWhw8f1sqVK5Wfn69p06b5lm/bts1vvbZt2yopKUnbt2+vN0bdZd26dZNhGOratavOO++8gGsyDEO7du1S3759A94WgDn0BAB10RcgcVcoNMKpTwmMOrduKywsrLfeoEGD9Nprr2nfvn2+5du3b9fy5cv91h0xYoTi4+OVn59fb1zDMPxuTXfgwIF6Nc2fP18HDhzQ0KFDgzomAMGjJwCoi74AiRkLNEJaWpquuOIKPf7446qurlaHDh307rvvaufOnfXWnTFjht59910NHDhQd999t2pqavTUU0+pd+/e+uSTT3zrdevWTY888ojy8vK0a9cuDR8+XKmpqdq5c6eWLVumcePG6b777pMkde7cWTfeeKPv3tn//Oc/tXTpUl144YW66667wvVtAPD/0BMA1EVfgESwQCMtWbJE48eP19y5c2UYhgYPHqzly5erffv2futlZ2dr+fLluu+++zR16lRlZWVp5syZ+vLLL/XVV1/5rfvggw/qvPPO05w5c5Sfny/p+3MhBw8erJ/+9Ke+9UaPHq1169bpb3/7myorK9W5c2c98MAD+s1vfqOmTZuG/uAB1ENPAFAXfQEuo+7cEhACw4cP1+eff17vXEsAsYmeAKAu+kLk4xoLWO7E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tm3GgQMH/F49e/Y0Bg0aZBiGYezZs8eQZEgyli5d6tu+pqbG6NWrl9GxY8fAvzlADKInAKiLvgCrcY1FDOnUqZPf1+np6ZKkrKysBpcfPnzYt+zQoUOaMGGCMjIylJycrDZt2qhr166SpLKyMknS/v37deLECZ177rn19l132bZt22QYhrp37642bdr4vb788kvt379fkpScnCxJSkxM1PXXX+/bPi4uTjfeeKO++eYb7dmzJ/BvBgB6AoB66AswI8HuAhA+8fHxAS03at0wbNSoUVq3bp3uv/9+XXjhhUpJSZHX69XQoUPl9XoDrsXr9crlcmn58uUN7j8lJUWS1LJlSyUlJal58+b11mvbtq2k75ta3UYI4OzoCQDqoi/ADIIFzurw4cNauXKl8vPzNW3aNN/ybdu2+a3Xtm1bJSUlafv27fXGqLusW7duMgxDXbt21XnnnXfafcfFxenCCy/Upk2bVFVVpSZNmvje27dvnySpTZs2QR0XgODQEwDURV+AxO1m0Qin0n/tTyWk72/tVne9QYMG6bXXXvP9IEvfN4rly5f7rTtixAjFx8crPz+/3riGYfjdmu7GG29UTU2N/vznP/uWVVZW6sUXX1SvXr3Uvn17U8cHIDD0BAB10RcgMWOBRkhLS9MVV1yhxx9/XNXV1erQoYPeffdd7dy5s966M2bM0LvvvquBAwfq7rvvVk1NjZ566in17t1bn3zyiW+9bt266ZFHHlFeXp527dql4cOHKzU1VTt37tSyZcs0btw43XfffZKku+66S3/84x+Vm5urr7/+Wp06ddLzzz+v3bt364033gjXtwHA/0NPAFAXfQESwQKNtGTJEo0fP15z586VYRgaPHiwli9fXu8TgOzsbC1fvlz33Xefpk6dqqysLM2cOVNffvmlvvrqK791H3zwQZ133nmaM2eO8vPzJX1/cdjgwYP105/+1LdecnKyVq1apQceeEDPPvusjh07pgsvvFBvvfWWhgwZEvqDB1APPQFAXfQFuIy6c0tACAwfPlyff/55vXMtAcQmegKAuugLkY9rLGC5EydO+H29bds2vf3227rqqqvsKQiAregJAOqiL0QnZixguXbt2mnMmDE655xztHv3bs2fP18ej0dbtmxR9+7d7S4PQJjREwDURV+ITlxjAcsNHTpUL730kkpKSuR2u5WTk6NZs2bR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VEQu2C/CMAzD7iJgvZKSEp08eVIul0sRERF2l2PKO++8o379+ikjI0O33nqrIiIi9K9//UsfffSRnnrqKY0bN87uEgHHIxMAVEQuwGo0FnC8q6++Wt9884127doll8slSTp16pTatWunOnXq6KuvvrK5QgCBRCYAqIhccAZOhQpRFc+bbNGiha6//nqtXbtW3bp1U1xcnDp27Ki1a9dKkpYuXaqOHTsqNjZWXbt21ZdfflluvK+//lrDhg1Tq1atFBsbq5SUFN1xxx365ZdfKm27dBuxsbFq3bq15s+fr6lTp1a5N+Tll19W165dFRcXpwYNGuiWW25RdnZ2uXUKCgpUv359b1BIUnR0tBo1aqS4uDiTPykgPJAJACoiF2A5AyFp4cKFhiRj9+7dhmEYRvPmzY1zzz3XaNKkiTF16lRj9uzZRtOmTY26desaL7/8spGenm489thjxmOPPWYkJiYabdq0MUpKSrzjzZo1y7jkkkuMhx9+2FiwYIExZswYIy4uzujRo4fh8Xi8623evNlwuVxGixYtjMcee8x49NFHjdTUVOPCCy80Kv5zmzZtmhEREWEMGjTIeO6554zMzEyjUaNGRosWLYwjR45415swYYIhyXjooYeMHTt2GDt37jQefvhhIyoqynjzzTf9+nMEQgWZAKAicgFWo7EIUVWFhSTj008/9a6zYsUKQ5IRFxdn7N2717t8/vz5hiRjzZo13mXHjx+vtI3XXnvNkGR89NFH3mU33HCDUbt2bWP//v3eZTt27DCio6PLhcWePXuMqKgo49FHHy035tatW43o6Ohyy48ePWoMHDjQiIiIMCQZkozatWsbb731lu8/GCBMkQkAKiIXYDVOhQoj7du3V0ZGhvf7nj17SpKuvPJKpaenV1q+a9cu77KyhxGLiop06NAh9erVS5K0efNmSb9eBLZy5Ur169dPqamp3vXbtGmja6+9tlwtS5culcfj0cCBA3Xo0CHvV0pKitq2bas1a9Z413W5XDrnnHN000036bXXXtPLL7+sbt26aciQIfrss89M/1yAcEUmAKiIXIAZ0XYXgMApGwiSlJiYKElKS0urcvmRI0e8yw4fPqzMzEwtXrxYBw8eLLd+fn6+JOngwYM6ceKE2rRpU2nbFZft2LFDhmGobdu2VdZaq1Yt759HjRqlzz77TJs3b1Zk5K+98MCBA3X++edrzJgx2rBhw+knDeC0yAQAFZELMIPGIoxERUX5tNwoc8OwgQMH6tNPP9V9992nTp06qW7duvJ4PLrmmmvk8Xh8rsXj8SgiIkLLly+vcvt169aVJBUXF+uFF17Q/fff7w0K6dcwufbaa/XMM8+ouLhYMTExPtcAhDsyAUBF5ALMoLHAWR05ckSrVq1SZmamJk+e7F2+Y8eOcuslJSUpNjZWO3furDRGxWWtW7eWYRhq2bKlzjnnnNNu+5dfftGpU6dUUlJS6bWTJ0/K4/FU+RoA/yETAFRELkDidrOohtK9BEaFR57MmTOn0np9+vTRW2+9pQMHDniX79y5U8uXLy+3bv/+/RUVFaXMzMxK4xqG4b01XVJSkurVq6dly5apuLjYu87Ro0f17rvvql27dtxGDggwMgFAReQCJI5YoBoSEhJ06aWX6vHHH9fJkyfVtGlTffDBB9q9e3eldadOnaoPPvhAvXv31t13362SkhI988wz6tChg7Zs2eJdr3Xr1po2bZomTpyoPXv2qF+/foqPj9fu3bu1bNkyjRgxQvfee6+ioqJ077336qGHHlKvXr30xz/+USUlJXrhhRf0448/6uWXXw7gTwKARCYAqIxcgCSeYxGqqrqF3HXXXVdpPUnGyJEjyy3bvXu3Icl44oknvMt+/PFH4w9/+INRr149IzEx0bj55puNAwcOGJKMKVOmlHv/qlWrjM6dOxsxMTFG69atjX/84x/G//zP/xixsbGVtv/mm28aF198sVGnTh2jTp06Rrt27YyRI0caWVlZ5dZ75ZVXjB49ehj16tUz4uLijJ49expvvPFGDX86QPghEwBURC7AahGGUeHYEuAH/fr10zfffFPpXEsA4YlMAFARuRD8uMYCljtx4kS573fs2KF///vfuvzyy+0pCICtyAQAFZELoYkjFrBckyZNNGzYMLVq1Up79+7V3Llz5Xa79eWXX572XtQAQheZAKAiciE0cfE2LHfNNdfotddeU05OjlwulzIyMjR9+nSCAghTZAKAisiF0MQRCwAAAACm+e0ai2effVYtWrRQbGysevbsqc8//9xfmwIQBMgEABWRC0Bo8Utj8frrr2v8+PGaMmWKNm/erAsvvFB9+/bVwYMH/bE5AA5HJgCoiFwAQo9fToXq2bOnunfvrmeeeUaS5PF4lJaWptGjR+uBBx4443s9Ho8OHDig+Ph4RUREWF0agDIMw1BhYaFSU1MVGem/m8SZyYTS9ckFwP8ClQkSuQAEC19ywfKLt4uLi7Vp0yZNnDjRuywyMlJ9+vTR+vXrK63vdrvldru93+/fv1/t27e3uiwAZ5Cdna1mzZr5ZWxfM0EiFwC7+TMTJHIBCEbVyQXLG4tDhw6ppKREycnJ5ZYnJydr+/btldafMWOGMjMzKy0fO3asXC6X1eUBKMPtdmvOnDmKj4/32zZ8zQTp9LkAIDD8mQmStbmQnZ2thIQEv9QJQCooKFBaWlq1csH2281OnDhR48eP935fWrzL5aKxAALEaacRnC4XAASG0zJBOn0uJCQk0FgAAVCdXLC8sWjUqJGioqKUm5tbbnlubq5SUlIqrU8DAYQ2XzNBIheAUEcuAKHJ8iuzYmJi1LVrV61atcq7zOPxaNWqVcrIyLB6cwAcjkwAUBG5AIQmv5wKNX78eA0dOlTdunVTjx49NGfOHB07dkx/+tOf/LE5AA5HJgCoiFwAQo9fGotBgwbp559/1uTJk5WTk6NOnTrp/fffr3SRFoDwQCYAqIhcAEKPX55jYUZBQYESExM1YcIEzqUE/MztdmvmzJnKz8939MWPpbkAIDCcngnSb7kQDLUCwcyXz5p/n34DAAAAICzQWAAAAAAwjcYCAAAAgGk0FgAAAABMo7EAAAAAYBqNBQAAAADTaCwAAAAAmEZjAQAAAMA0GgsAAAAAptFYAAAAADCNxgIAAACAaTQWAAAAAEyjsQAAAABgGo0FAAAAANNoLAAAAACYRmMBAAAAwDQaCwAAAACm0VgAAAAAMI3GAgAAAIBpNBYAAAAATKOxAAAAAGAajQUAAAAA02gsAAAAAJhGYwEAAADANBoLAAAAAKbRWAAAAAAwjcYCAAAAgGk0FgAAAABMo7EAAAAAYBqNBQAAAADTaCwAAAAAmEZjAQAAAMA0GgsAAAAAptFYAAAAADCNxgIAAACAaTQWAAAAAEyjsQAAAABgWrTdBfhLamqq/vznP/tl7KlTp8owDL+MDcB/unXrpo0bN/pl7KioKHk8Hr+MDQBAMAjZIxb+aiokyeVy+W1sAP7jr6ZCkhISEvw2NgAAwSBkGwt/qlWrlt0lAHCY2rVr210CAAC2orGogfr169tdAgCHadWqld0lAABgK58aixkzZqh79+6Kj49XUlKS+vXrp6ysrHLrFBUVaeTIkWrYsKHq1q2rAQMGKDc319Ki7damTRu7SwAcg1z4Vd++fe0uAXAEMgEIXz41FuvWrdPIkSP12Wef6cMPP9TJkyd19dVX69ixY951xo0bp3fffVdLlizRunXrdODAAfXv39/ywu102WWXKTMzU3/4wx/sLgWwHbnwq4ceekiGYejFF1+0uxTAVmQCEL4iDBO3N/r555+VlJSkdevW6dJLL1V+fr4aN26sV199VTfddJMkafv27TrvvPO0fv169erV66xjFhQUKDExURMmTDB1kXRmZmaN3+uLKVOmBGQ7gD+43W7NnDlT+fn5ll187M9cMCtQd3OLiIgIyHYAf3F6Jki/5YKVtQKozJfPmqlrLPLz8yVJDRo0kCRt2rRJJ0+eVJ8+fbzrtGvXTunp6Vq/fn2VY7jdbhUUFJT7AhC8yAUAZVmRCRK5AASDGjcWHo9HY8eOVe/evdWhQwdJUk5OjmJiYlSvXr1y6yYnJysnJ6fKcWbMmKHExETvV1paWk1LUq1atZSZmRmwoxWSvNu7+eabA7ZNwKmcmAu1a9eWYRgBffZM6fYWL14csG0CTmRVJkjW5gIA/6hxYzFy5Eht27bN9H+cEydOVH5+vvcrOzu7xmM1bNjQVC1mlAYmEM6cmAvnnHOOqVrMGDRokG3bBpzAqkyQrM0FAP5Roydvjxo1Su+9954++ugjNWvWzLs8JSVFxcXFysvLK7cnIjc3VykpKVWO5XK5LHvgXFxcnCXj1FRqaqqio6MVFRWlmJgYxcXFKSIiQqdOndKpU6d04sQJ5eTkqKioyNY6AX9wai7YfXvobt26KTY2VrVq1VLdunXVoEEDRUZGqqioSEVFRTp8+LC++uor5eXl2VonYDUrM0GyNhcA+IdPjYVhGBo9erSWLVumtWvXqmXLluVe79q1q2rVqqVVq1ZpwIABkqSsrCzt27dPGRkZ1lV9GjExMX7fxplU92nfXPCNUOL0XIiPj/f7Ns6kuk/75oJvhAqnZwIA//GpsRg5cqReffVVvf3224qPj/eeC5mYmKi4uDglJiZq+PDhGj9+vBo0aKCEhASNHj1aGRkZ1b7Lgxk8+RYIPKfnQukFowACw+mZAMB/fGos5s6dK0m6/PLLyy1fuHChhg0bJkmaPXu2IiMjNWDAALndbvXt21fPPfecJcWeTbDs8Su9uPyHH37QokWLbK6msksuuaTc3ToCZeXKlfr4448Dvl2Y4/RciIqKCsh2zCq9uHzlypX63e9+Z3M1lT3wwAOaMWNGwLf74IMP2rJd1JzTMwGA/5h6joU/mHmORZcuXXTjjTf6qTL/cOJpUYG8q1ZFTvx5hDJ/PMfCH8w8x2L48OH6xz/+YXFF/uXEnSR2/lfhxJ9HqHN6Jkg8xwIIlIA9xwIAAAAAJBoLOEzpc0GC5fQVAP5X+lwQu2/QAQA4MxoLOFJsbKzdJQBwmJqeDgcACIyQaiwcdrkITOCIBazi8XjsLgEW4RkGAOBsIdVYHD9+3O4SYJHU1FS7S0CI+OWXX+wuARbp1q2b3SUAAM4gpBqLwsJCu0uARZo3b253CQgRBw4csLsEWOSSSy6xuwQAwBmEVGNx6tQpu0vwWenFytxOsTx+HrDKiRMn7C7BZ6UXK/M5KC8yMqT+ywKAkBNSKR3MRyz4D7O8/Px8u0tAiAjmIxbR0T49wzTk7du3z+4SAABnEFK/zZ44cUKZmZmaNm2a3aX4jD2T5QXjXmY405EjRxQdHa3atWvbXYrP2OFQHtfLAICzhdzuMI/HE5R3gaGxKK+goMDuEhBCSkpKgrJZpbEob//+/XaXAAA4A/7Xcggai/L4BQKgsaho48aNdpcAADiDkDtigdDw4IMPev/8888/69tvv9WWLVtUXFysoqKioLxQH4A5Za+92r59u5YsWaJFixapsLBQ+fn5KioqsrE6AAC7wxyCh/udXuPGjXXZZZdpzJgxuu+++5SRkWF3SUBAkAun165dO02aNEk7duxQTk6Oxo4da3dJABD2Qrax+Ne//mV3CfCTHj162F0CgtTAgQPtLsEnNBbVN3r0aLtLAICwF7KnQn3zzTeaMmVKuWWZmZk2VXN2/AJRfQkJCVX+XU6fPl1ut9uGihAslixZUul6Jid/9pxcm9OkpqZW+fNKSEgI6luRA0AwCdkjFsGGXyDMa9y4sd0lAJYqKSmxu4Sgd/7559tdAgCEjZA9YlGVskcwnHb0gsbCvE6dOikiIkKHDx9WUVGRDMMIylsPI7DKHsFw2ueQf7/mDR06VJGRkdqxY4fy8/NVUlJCwwYAfhJWjYWTcbtZ87p3767u3buXW/bGG29o69atNlUEmBMVFcUvwSbddddduuuuu8otu+222/Taa6/ZVBEAhC5OhXII7lfvH1deeaXdJQA1Fh3Nvh9/mDZtmt0lAEBI4rdZh+CIhX80aNBA//Vf/6X09HS7SwF8Ri74R6tWrfT3v/9dF198sd2lAEBIobFAyOvZs6eGDx/OUSEAXqNGjdLHH3+sqKgou0sBgJDBb1oIG+z9BVAROxwAwDokKsIG56sDqCguLs7uEgAgZIRtY/Hee+/ZXQICrE6dOnaXAIe7++677S4BAZaUlGR3CQAQMsJ2F+7GjRu1cePGs65X1fMuVq9ebfndhlJSUlRYWKjCwkKdOnXK0rF9lZOTo5SUFMvHPXz4sP72t79VWh4VFaXJkydbvr2KatWq5fdtILjNmzdP8+bNO+t6VT3vYtKkSXrkkUcsradz5846cOCA9u/fb/tT5b/66itdeOGFlo+7a9cutW7dutLyWrVqqbi42PLtVVS7dm2/bwMAwkXYNhZm7N+/3/Ixhw8fLknKz8/XU089Zfn4vti6datfGouvvvqqyuWBeihZbGxsQLaD8PTFF19YPubHH38sSfrxxx+VlpZm+fi+eO211/zSWCxatKjK5YF6OGC9evUCsh0ACAc0Fmfx1FNPafz48eWW7d27VwsXLtSVV16pRo0aWXqKTWJiomVj1dTGjRu1fft2jR492vRYu3bt0tatW5Wfn68ff/yxynU8Ho9mz56tpKQkxcXFqXnz5kpKSlLjxo0tbQY4lxpWSU9P1759+8otW7duna644go9/PDDOu+889SoUSPLttesWTPLxqqp5557Tm+//ba+++4702OtXr1ar776qrKzs/XZZ59VuU5JSYlatGihDh06qH79+rr00kvVoUMHtW/f3tKcbNCggWVjAUC4o7E4i/z8fE2ZMqXS8j179uh///d/q3xPmzZtdPvtt/u7NL9xu91yu93avHmzunTpctb158+frwMHDpjaZl5envLy8iSd/shGRVWdpnYm3P0FVsnOzq7yLmNr167VpZdeWuV7rrnmGi1fvtzfpflNYWGhtm/frhdeeMF7hPVMunXrpk2bNpna5t69e7V3715J0ssvv1yt9/h6BJTbzQKAdfhNC6f15ZdfVmu90oYAQOh78cUXq7VeaUMAAAgfHLHAae3bt09Tp05VRESEIiMj5XK5FBUVpVOnTqm4uFgej0eGYQTsGgkA9vvPf/6jqKgoRUZGKjo6WvHx8YqJiVFRUZGOHj2qkpISlZSUkAsAEIZoLHBGpY2Dx+Ox/W5VZtl9Vx0gVHg8Hm8mFBUV2V2OKQUFBXaXAAAhg1OhEDby8/PtLgGAw2RnZ9tdAgCEDI5YOMSjjz4akHu2B7uYmBglJSUpISHB5/cG+xEXhJ+6devq2LFjdpfheHXq1FHHjh3VtGlTn98b7EdcAMBJaCwcIlD3bA921113nTp16lSj9548edLaYgA/oxmunmeffVZDhw6t0XuPHz9ucTUAEL44FcohaCyqp6ZNhcQvaQg+/Jutnpo2FZJ04sQJCysBgPDGEQtUUt3nQ1T1fA8n4y41QM1V9/NT1fM9nIydOgBgHY5YOAS/9Pofe38RbPil1/+4WxwAWIcjFjYLtr3+ZZXumfRnUxQZGamIiAjVr19fjRs3rvE4P/zwA80bgkaw7fUvKzIy0u/Pt4mKilJUVJRatWql8847r8bjrFy5UiUlJRZWBgDhjcbCD8LlvuhTp07V3r179eKLL/plz+pdd92lJk2aWDLW7t27aSxgqx9//NHuEgKipKREH3/8sa688kq/HCXcvHmzOnfubMlYq1atIhcAwEI0Fn7wyy+/2F1CwDRv3lzR0dF+uVWuVU3F3Llzw6bZg3N9//33dpcQMJdccoliY2N19OhRy8e2qqno3Lkzz7AAAIvRWPhBSUlJUJ/i5Ku//vWvkqRPPvlEH3zwQY3GaN68uc4//3z17NnTytIkSTk5OZaPCfiquLg4qE9x8lVhYaEk6YknntD9999fozEuvfRS3XzzzRo1apSVpUmStmzZYvmYABDuuHgblundu3eN3hcVFaU77rjDL03Ftm3bLB8TQPXdd999NXpfTEyM1q1b55em4vXXX7d8TACAycbiscceU0REhMaOHetdVlRUpJEjR6phw4aqW7euBgwYoNzcXLN1IoRFRlrf3/7jH//QnDlz9Oabb1o+Nk6PTIBVoqOtP6Deu3dvtW7dWkOGDLF8bJweuQCEjxon98aNGzV//nxdcMEF5ZaPGzdO//d//6clS5YoMTFRo0aNUv/+/fXJJ5+YLhbOV/oMjPz8fD311FPVWtcfOHc68MgEnE7pBdLZ2dlKT0+v1rr+8Omnn/ptbFSNXADCS412FR89elSDBw/W888/r/r163uX5+fn64UXXtBTTz2lK6+8Ul27dtXChQv16aef6rPPPrOsaDhfYmKi3SUggMgEVEdaWprdJSCAyAUg/NToiMXIkSN13XXXqU+fPpo2bZp3+aZNm3Ty5En16dPHu6xdu3ZKT0/X+vXr1atXr0pjud3ucg8o4u49ocOfRyROJ5wumncSKzNBIhdCmR23dw2ni+adhFwAwo/PjcXixYu1efNmbdy4sdJrOTk5iomJUb169cotT05OPu2deWbMmGHLL6AIPRs2bLC7hLBkdSZI5AKs88wzz9hdQlgiF4Dw5NOpUNnZ2RozZoxeeeUVxcbGWlLAxIkTlZ+f7/3i3HjU1OrVq+0uIez4IxMkcgHWmTRpkt0lhB1yAQhfPh2x2LRpkw4ePKguXbp4l5WUlOijjz7SM888oxUrVqi4uFh5eXnl9kTk5uYqJSWlyjFdLpdcLlfNqodflJ5OZOWTr63GKU/O4I9MkMgFJyo9ncjKJ19bjVOenIFcAMKXT0csrrrqKm3dulVbtmzxfnXr1k2DBw/2/rlWrVpatWqV9z1ZWVnat2+fMjIyLC8e/rVu3Tq7S4DDkQnh55FHHrG7BDgcuQCEL5+OWMTHx6tDhw7lltWpU0cNGzb0Lh8+fLjGjx+vBg0aKCEhQaNHj1ZGRsZpL8aCc3333XfKzMxURESEJk+ebHc5+uGHH7R48WKdOnXK7lLw/5EJ4WfZsmWKjo5WVFRUuQtp7bJy5Ur169fPEbXgV+QCEL4sfwLR7NmzFRkZqQEDBsjtdqtv37567rnnrN4MAsTj8UiSDhw4oNTUVFtr2b17t4qLi22tAb4jE0JPSUmJSkpKtGnTJnXt2tXWWlavXq1jx47ZWgN8Ry4AoSnCsOPef2dQUFCgxMRETZgwgXMpHSQpKUm///3vbb0P/axZs1RYWGjb9kOR2+3WzJkzlZ+fr4SEBLvLOa3SXICzdOjQQQsWLLD19JWmTZvqwIEDtm0/VDk9E6TfciEYagWCmS+fNcuPWCA0HTx4UP/4xz/sLgOAg2zbtk0XXXSR3WUAAByiRk/eBgAAAICyaCwAAAAAmEZjAQAAAMA0GgsAAAAAptFYAAAAADCNxgIAAACAaTQWAAAAAEyjsQAAAABgGo0FAAAAANNoLAAAAACYRmMBAAAAwDQaCwAAAACm0VgAAAAAMI3GAgAAAIBpNBYAAAAATKOxAAAAAGAajQUAAAAA02gsAAAAAJhGYwEAAADANBoLAAAAAKbRWAAAAAAwjcYCAAAAgGk0FgAAAABMo7EAAAAAYBqNBQAAAADTaCwAAAAAmEZjAQAAAMA0GgsAAAAAptFYAAAAADCNxgIAAACAaTQWAAAAAEyjsQAAAABgGo0FAAAAANNoLAAAAACYRmMBAAAAwDQaCwAAAACm0VgAAAAAMI3GAgAAAIBpNBYAAAAATKOxAAAAAGCaz43F/v37NWTIEDVs2FBxcXHq2LGjvvjiC+/rhmFo8uTJatKkieLi4tSnTx/t2LHD0qIBOAu5AKAsMgEITz41FkeOHFHv3r1Vq1YtLV++XN9++62efPJJ1a9f37vO448/rqefflrz5s3Thg0bVKdOHfXt21dFRUWWFw/AfuQCgLLIBCB8Rfuy8syZM5WWlqaFCxd6l7Vs2dL7Z8MwNGfOHD300EO68cYbJUmLFi1ScnKy3nrrLd1yyy0WlQ3AKcgFAGWRCUD48umIxTvvvKNu3brp5ptvVlJSkjp37qznn3/e+/ru3buVk5OjPn36eJclJiaqZ8+eWr9+fZVjut1uFRQUlPsCEDzIBQBl+SMTJHIBCAY+NRa7du3S3Llz1bZtW61YsUJ33323/vKXv+if//ynJCknJ0eSlJycXO59ycnJ3tcqmjFjhhITE71faWlpNZkHAJuQCwDK8kcmSOQCEAx8aiw8Ho+6dOmi6dOnq3PnzhoxYoTuvPNOzZs3r8YFTJw4Ufn5+d6v7OzsGo8FIPDIBQBl+SMTJHIBCAY+NRZNmjRR+/btyy0777zztG/fPklSSkqKJCk3N7fcOrm5ud7XKnK5XEpISCj3BSB4kAsAyvJHJkjkAhAMfGosevfuraysrHLLvv/+ezVv3lzSrxdnpaSkaNWqVd7XCwoKtGHDBmVkZFhQLgCnIRcAlEUmAOHLp7tCjRs3ThdddJGmT5+ugQMH6vPPP9eCBQu0YMECSVJERITGjh2radOmqW3btmrZsqUmTZqk1NRU9evXzx/1A7AZuQCgLDIBCF8+NRbdu3fXsmXLNHHiRD388MNq2bKl5syZo8GDB3vXuf/++3Xs2DGNGDFCeXl5uvjii/X+++8rNjbW8uIB2I9cAFAWmQCErwjDMAy7iyiroKBAiYmJmjBhglwul93lACHN7XZr5syZys/Pd/T5yqW5ACAwnJ4J0m+5EAy1AsHMl8+aT9dYAAAAAEBVfDoVKhBKD6C43W6bKwFCX+nnzGEHLitxen1AqAmGz1xpjTwoD/Cv0s9YdXLBcY1FYWGhJGnOnDn2FgKEkcLCQkefalSaCwACw+mZIP2WCzwoDwiM6uSC466x8Hg8OnDggAzDUHp6urKzs0Pi3MmCggKlpaUxH4cKtflI1ZuTYRgqLCxUamqqIiOde2akx+NRVlaW2rdvH3Z/R8GE+ThbKGWCFJq5EI7/5oJNqM3J6lxw3BGLyMhINWvWzHvYJdQegsN8nC3U5iOdfU5O3ysp/ZoLTZs2lRSef0fBhvk4WyhkghTaucB8nC/U5mRVLjh7dwQAAACAoEBjAQAAAMA0xzYWLpdLU6ZMCZlnWTAfZwu1+UihN6dQm48UenNiPs4WavORQm9OzMf5Qm1OVs/HcRdvAwAAAAg+jj1iAQAAACB40FgAAAAAMI3GAgAAAIBpNBYAAAAATKOxAAAAAGAajQUAAAAA02gsAAAAAJhGYwEAAADANBoLAAAAAKbRWAAAAAAwjcYCAAAAgGk0FgAAAABMo7EAAAAAYBqNBQAAAADTaCwAAAAAmEZjAQAAAMA0GgsAAAAAptFYAAAAADCNxgIAAACAaTQWAAAAAEyjsQAAAABgGo0FAAAAANNoLAAAAACYRmMBAAAAwDQaCwAAAACm0VgAAAAAMI3GAgAAAIBpNBYAAAAATKOxAAAAAGAajQUAAAAA02gsAAAAAJhGYwEAAADANBoLAAAAAKbRWAAAAAAwjcYCAAAAgGk0FgAAAABMo7EIUS+++KIiIiK0Z88eu0sB4ABkAoCKyAVYjcYCQWHx4sXq0qWLYmNj1bhxYw0fPlyHDh2yuywANiETAFRELtgvwjAMw+4iYL2SkhKdPHlSLpdLERERdpdjyty5c3XPPffoqquuUv/+/fXjjz/qb3/7m9q0aaMNGzYoNjbW7hIBxyMTAFRELsBqNBZwtOLiYiUnJ+uCCy7Q2rVrvcH33nvv6YYbbtDTTz+t0aNH21wlgEAhEwBURC44B6dChaiK5022aNFC119/vdauXatu3bopLi5OHTt21Nq1ayVJS5cuVceOHRUbG6uuXbvqyy+/LDfe119/rWHDhqlVq1aKjY1VSkqK7rjjDv3yyy+Vtl26jdjYWLVu3Vrz58/X1KlTq9wb8vLLL6tr166Ki4tTgwYNdMsttyg7O9v7+rZt25SXl6dBgwaVe//111+vunXravHixRb8tIDQRyYAqIhcgNWi7S4AgbNz507ddttt+vOf/6whQ4Zo1qxZuuGGGzRv3jw9+OCDuueeeyRJM2bM0MCBA5WVlaXIyF97zw8//FC7du3Sn/70J6WkpOibb77RggUL9M033+izzz7zfpC//PJLXXPNNWrSpIkyMzNVUlKihx9+WI0bN65Uz6OPPqpJkyZp4MCB+u///m/9/PPP+vvf/65LL71UX375perVqye32y1JiouLq/T+uLg4ffnll/J4PN46AVQfmQCgInIBphgISQsXLjQkGbt37zYMwzCaN29uSDI+/fRT7zorVqwwJBlxcXHG3r17vcvnz59vSDLWrFnjXXb8+PFK23jttdcMScZHH33kXXbDDTcYtWvXNvbv3+9dtmPHDiM6Otoo+89tz549RlRUlPHoo4+WG3Pr1q1GdHS0d/nPP/9sREREGMOHDy+33vbt2w1JhiTj0KFDPvxkgPBEJgCoiFyA1Wjdwkj79u2VkZHh/b5nz56SpCuvvFLp6emVlu/atcu7rOxegKKiIh06dEi9evWSJG3evFnSrxeBrVy5Uv369VNqaqp3/TZt2ujaa68tV8vSpUvl8Xg0cOBAHTp0yPuVkpKitm3bas2aNZKkRo0aaeDAgfrnP/+pJ598Urt27dLHH3+sQYMGqVatWpKkEydOmP/hAGGITABQEbkAMzgVKoyUDQRJSkxMlCSlpaVVufzIkSPeZYcPH1ZmZqYWL16sgwcPlls/Pz9fknTw4EGdOHFCbdq0qbTtist27NghwzDUtm3bKmstDQJJmj9/vk6cOKF7771X9957ryRpyJAhat26tZYuXaq6deueftIATotMAFARuQAzaCzCSFRUlE/LjTI3DBs4cKA+/fRT3XffferUqZPq1q0rj8eja665Rh6Px+daPB6PIiIitHz58iq3XzYAEhMT9fbbb2vfvn3as2ePmjdvrubNm+uiiy5S48aNVa9ePZ+3D4BMAFAZuQAzaCxwVkeOHNGqVauUmZmpyZMne5fv2LGj3HpJSUmKjY3Vzp07K41RcVnr1q1lGIZatmypc845p1p1pKene/ek5OXladOmTRowYICv0wFgEpkAoCJyARK3m0U1lO4lMCo88mTOnDmV1uvTp4/eeustHThwwLt8586dWr58ebl1+/fvr6ioKGVmZlYa1zCMKm9N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yu12a/r06abGiYuL07Bhw8rtvTXzcwOczsxn2+m5YBiGjh49qvj4eFPj1K9fX2vWrNGFF15oUWUAQhF3qXI+jlg4hBOPWHzzzTflvne5XKbHbNy4cY1OCQHC0alTp+wu4axqcupnReeffz5NBRDElixZYncJcAiOWPgoMjJSERERqlWrlmrXrq26detq+PDhNR7Pjou8p0yZotdff13bt28/43pvvPGG3njjDe97zHC5XIqPjy/3y0N1j1RERUXp+uuvV6dOnUzVAPhLdHS0IiMjVbt2bTVq1EgpKSn6+OOPazxeuOyVS0hIUGpqqm6//Xa7SwFQBcMw1L9/fy1btuyM6w0cOLDce6xW3Ux0uVyaP3++hg4dankNqB4aCx/UqVNHF198sdq1a6cGDRrYXY5PNmzYoJ49e3q/HzRoUEBPQXrwwQdr/F6e6AknS0pK0v33368//OEPatWqld3l+OTvf/+7Ro8ebdv28/Pzbds2gOpZunRp0OzsKCoqsruEsEdj4YP4+HhddNFFlo330ksvWTbW2axevVqxsbGOOd1g7ty5NX7vzp07LawEMCc1NVX/8z//Y9l41157rWVjnc3kyZNVv359DRkyJGDb9JcVK1bYXQIAP+jYsaPdJcAHNBan4c+9+Xac/lRUVKSlS5dq6dKlpuZ233336dtvv9W6det09OhR7/Jzzz1Xt91221nfb/bn6rTngyC8+PNiajv2CObl5en222/X7bffbmpuOTk5evPNN/XII48oJyfHu/yGG27QO++8Y0WpZxQse1MBVB+f6+DExdvwSd26ddWjRw/17t273PLqNBUAQlNycrLuuece3XfffeWWB6KpAAA4B0csAiQrK0tvvPFGUNzlpSoPP/ywXC6XGjVqpOHDh+ucc86p8tSDWbNmVfn+kpISud1uUzUcO3bM1PsBp3nvvfd066236sSJE3aXYonrrrvO0tPCquPnn38O6PYAnFl0dLQSEhJ07rnnav369add73R3iCwuLlZBQYG/yoOf0VgoMM9RyM7OVnFxsd+34y+GYaioqEh5eXmSpEaNGlX5czP7y/+ZTnXatWuXqbEBXwTiGRKffvppuVMKg925554b8GdvrFy5MqDbA3BmJSUlOnLkiPbu3XvG9XJzc01tx+nP+QlXnAoVIBWfCRGsjh8/btu2V69ebdu2AX/g3u/mTZ48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\n"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def vis_graph(X,y,n = 10, opacity = 0.5): # 标注区域透明度\n",
    "\n",
    "    fig, axes = plt.subplots(nrows=n, ncols=3, sharex=True, figsize=(8,12*n/5))\n",
    "    fig.dpi = 100\n",
    "\n",
    "    for index, (img, mask) in enumerate(zip(X, y)):\n",
    "        axes[ index,0].imshow(img, cmap='gray', vmin=0, vmax=1)\n",
    "        axes[ index,0].imshow(mask*10, alpha=opacity, cmap='gray', vmin=0, vmax=1)\n",
    "        axes[ index,0].set_title(f\"image{index}\")\n",
    "        axes[ index,1].imshow(img, cmap='gray', vmin=0, vmax=1)\n",
    "        axes[ index,1].set_title(f\"image{index}\")\n",
    "        axes[ index,2].imshow(mask*10, cmap='gray', vmin=0, vmax=1)\n",
    "        axes[ index,2].set_title(f\"image{index}\")\n",
    "\n",
    "    fig.suptitle('digtis+mask digits masks', fontsize=20)\n",
    "    plt.tight_layout()\n",
    "    plt.show()\n",
    "\n",
    "vis_graph(X[indices], y[indices])"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "可以看到，含有0的值，都是有mask的，这个数据集，把掩码用0表示，其他的数字是一些灰色边界值"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 1.  2. 10.]\n",
      "[ 0.  7. 10.]\n",
      "[ 1.  4. 10.]\n",
      "[ 3.  9. 10.]\n",
      "[ 1.  8. 10.]\n",
      "[ 1.  2. 10.]\n",
      "[ 1.  7. 10.]\n",
      "[ 2.  7. 10.]\n",
      "[ 5.  9. 10.]\n",
      "[ 0.  2. 10.]\n"
     ]
    }
   ],
   "source": [
    "for i in y[indices]:\n",
    "    print(np.unique(i))"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 查看文本数据"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\t12,18,36,40,2\t33,27,53,51,9\n",
      "1\t36,19,60,43,4\t8,34,32,56,7\n",
      "2\t34,35,56,59,3\t2,18,26,42,7\n",
      "3\t10,5,20,29,1\t34,20,56,44,6\n",
      "4\t33,27,53,51,4\t8,11,27,35,7\n",
      "5\t35,37,57,61,7\t7,35,25,59,9\n",
      "6\t20,11,28,35,1\t39,9,59,33,3\n",
      "7\t36,38,60,58,0\t9,19,23,43,6\n",
      "8\t10,17,27,41,1\t32,13,56,37,3\n",
      "9\t6,21,26,45,2\t42,3,59,27,4\n",
      "10\t3,2,27,26,0\t38,6,62,26,5\n",
      "11\t34,3,58,27,3\t4,4,26,28,6\n",
      "12\t18,26,30,50,1\t45,15,61,39,6\n",
      "13\t32,36,56,60,3\t4,20,28,44,7\n",
      "14\t8,26,24,50,1\t39,39,53,63,7\n",
      "15\t35,18,59,42,0\t15,13,29,37,1\t58,36,82,60,4\n",
      "16\t2,23,26,47,3\t37,38,61,62,4\n",
      "17\t32,35,52,59,7\t4,15,27,39,9\n",
      "18\t32,11,53,35,1\t12,28,33,52,9\n",
      "19\t39,19,60,43,0\t8,40,26,63,9\n"
     ]
    }
   ],
   "source": [
    "count_line = 20\n",
    "count_ = 0\n",
    "with open('data/m2nist/bbox.txt','r') as f:\n",
    "    # print(f.readlines())\n",
    "    for line in f.readlines():\n",
    "        line = line.strip('\\n')\n",
    "        print(line)\n",
    "        count_+=1\n",
    "        if count_==count_line:\n",
    "            break"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "可以发现，每一行都是有行号的，从零开始\n",
    "每一行，至少有十个数字，最多是15个有效数字，五个数字一组，分别代表着四个角度坐标和数字值\n",
    "因为我们主要做的事语义分割，这里就不多对该文件探索和使用，但是可以以后作为一个coco格式的数据的\n",
    "\n"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "outputs": [
    {
     "data": {
      "text/plain": "['0', '12,18,36,40,2', '33,27,53,51,9']"
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# print(list(line.split(' ').split('\\t')))\n",
    "with open('data/m2nist/bbox.txt','r') as f:\n",
    "    for line in f.readlines():\n",
    "        ext = line.strip('\\n').replace('\\t',' ').split(' ')\n",
    "        break\n",
    "ext"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "outputs": [],
   "source": [
    "name_list = []\n",
    "with open('data/m2nist/bbox.txt','r') as f:\n",
    "    for line in f.readlines():\n",
    "        name = ''\n",
    "        line = line.strip('\\n').replace('\\t',' ').split(' ')\n",
    "        for i,v in enumerate(line):\n",
    "            if i==0:\n",
    "                name = name+v+'_'\n",
    "            else:\n",
    "                name = name+v[-1]+'_'\n",
    "        name = name[:-1] # name.rstrip('_')\n",
    "        name_list.append(name)\n",
    "\n",
    "        # print(name)\n",
    "        # if line[0]=='15':\n",
    "        #     break\n",
    "\n",
    "# 0_2_9\n",
    "# 1_4_7\n",
    "# 2_3_7\n",
    "#\n",
    "# 13_3_7\n",
    "# 14_1_7\n",
    "# 15_0_1_4"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "outputs": [
    {
     "data": {
      "text/plain": "5000"
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(name_list)  # check, should be 5000"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "\n",
    "\n",
    "## 划分数据集"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "outputs": [],
   "source": [
    "import os\n",
    "import random"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(5000, 64, 84) (5000, 64, 84) 5000 <class 'numpy.ndarray'>\n"
     ]
    }
   ],
   "source": [
    "#Shuffle\n",
    "X,y,name_list = shuffle(X,y,name_list)\n",
    "print(X.shape,y.shape,len(name_list),type(X))"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "outputs": [
    {
     "data": {
      "text/plain": "array([[10., 10., 10., ..., 10., 10., 10.],\n       [10., 10., 10., ..., 10., 10., 10.],\n       [10., 10., 10., ..., 10., 10., 10.],\n       ...,\n       [10., 10., 10., ..., 10., 10., 10.],\n       [10., 10., 10., ..., 10., 10., 10.],\n       [10., 10., 10., ..., 10., 10., 10.]], dtype=float32)"
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y[1,:,:]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "922\n"
     ]
    }
   ],
   "source": [
    "sel_list = []\n",
    "for i in range(len(X)):\n",
    "    if np.any(y[i,:,:]==0):\n",
    "        sel_list.append(i)\n",
    "print(len(sel_list))"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(922, 64, 84) (922, 64, 84) 922\n"
     ]
    }
   ],
   "source": [
    "X,y,name_list = X[sel_list,:,:],y[sel_list,:,:],np.array(name_list)[sel_list]\n",
    "print(X.shape,y.shape,len(name_list))"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "outputs": [
    {
     "data": {
      "text/plain": "(11.61565, 9.487809, 49.230198, 2.0803504)"
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 单通道均值\n",
    "np.mean(X),np.mean(y),np.std(X),np.std(y)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 800x1200 with 15 Axes>",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxYAAASVCAYAAAAxPUhfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAADyz0lEQVR4nOzdd3QUZfv/8c+mB1IglITelSodRRQQEbCgCAhYELA9KqCABfGLQlBExYICUnwQG4iPIjZEQURsYKEoRSnSQToktNSd3x/8smaTTdnMbmbL+3XOnkOm3Pc1m92LXHPfM2MzDMMQAAAAAJgQYnUAAAAAAPwfhQUAAAAA0ygsAAAAAJhGYQEAAADANAoLAAAAAKZRWAAAAAAwjcICAAAAgGkUFgAAAABMo7AAAAAAYBqFBeBD3nzzTdlsNtlsNu3atSvf+s6dO8tms6lz586lHpsr48ePd8QL31PU58mXYimNz7YvvR84r3bt2rLZbBo8eLDVoQDwAAoLAAAAAKZRWABwwlldBKvBgwfLZrOpdu3aVocCAH6JwgLwI99++60Mw9C3335rdSiSzk+FMgxDhmFYHQr8XGl8tgcPHuz4vFI8AIDnUVgA8Ds5oyr8cQgAgO+gsAAAAABgGoUFUIpOnDihxx57TA0bNlR0dLQqV66srl276oMPPijW/sW9c87bb7+tTp06qXz58oqJiVGzZs00YcIEpaamSpLjGorx48c79vn2229ls9k0ZMgQx7I6deo4ts155Z6qUpy7Qn3zzTe6+eabVadOHUVHR6tMmTKqVauWLrnkEj388MP65ptvinXsnpT3+FesWKFevXqpatWqio6OVqNGjfTUU0/pzJkzTvt98cUXuuaaaxzbNW7cWJMmTVJGRkaBfWVkZOizzz7TsGHD1LZtW5UvX17h4eGqUKGCLr74Yo0fP15Hjx4tMmZvvY+7d+/WBRdcIJvNptjYWC1fvrxE7fjyZztHQdcP5XyO33rrLUnn35O8n3tXn3Fv/U7yfq9SU1M1fvx4NWvWTDExMapcubKuueYa/fTTT077HT58WGPHjlWTJk1UtmxZVahQQTfccIPWrVtXaH87duzQiy++qJ49e6p27dqKjo5WdHS0atWqpf79++vLL78sMuaTJ09q4sSJat++veMzXqlSJTVu3Fg33nijZsyYoUOHDpXo/XjmmWcc70fv3r2Vnp7utN4XcwwQtAwApWLz5s1G1apVDUkuX0OGDDHmzp3r+Hnnzp352ujUqZMhyejUqZPLPjIyMowbbrihwD4aNGhg7Nq1y/HzuHHjHPuuWLGiwP1yv1asWOHYZ9y4cY7lrowYMaLI9ipUqOD2e5nzPtWqVcvtfQ3DcDr+SZMmGTabzWVsl156qXH69GnDbrcbDzzwQIHH0KNHDyMrK8tlX4MGDSrWe/DDDz8UGG9J38eiPk+bN282qlev7tj/559/LtH76euf7aLej9yf48JeuXnrs503nj179hgXXHCBy/ZDQ0ON//3vf4ZhGMbvv/9uVKtWzeV2kZGRxjfffOOyrx07dhTr2G+77TYjMzPTZRtF/f5zXlOnTs23b61atQxJxqBBg/Kts9vtxkMPPeT0Ocr7PfPm7wGA+8IEwOtSU1PVvXt3HThwQJLUv39/DRo0SJUrV9bWrVv10ksvae7cudq4caOpfh588EF98sknkqQmTZro4YcfVtOmTZWamqpFixZpxowZ6t+/v8t927Ztqw0bNuiTTz7R2LFjJUlfffWVqlat6rRdnTp1ihXL559/rilTpkiSLrroIt13331q1KiR4uPjdfLkSW3atElff/21fvnllxIerXlLlizRL7/8ovbt22v48OG64IILdPToUb3yyitasmSJfvrpJ02aNEkJCQl69dVXdfXVV+uuu+5S7dq1tW/fPk2aNEmrV6/Wl19+qddff1333ntvvj6ysrJUt25d3XjjjWrXrp1q1qypsLAw7d69W19//bXeeOMNHTt2TDfeeKM2btyoypUrO+3vrffx119/1dVXX61jx46patWqWrZsmRo3buz2e+gPn+2i3H///erbt6/Gjh2rTz75RFWrVtVXX31V4Pal+dm+6aabtG/fPo0ZM0Y9evRQmTJl9MMPP2jcuHFKTU3VnXfeqTZt2ui6667TuXPnNHHiRHXq1Enh4eH68ssvNXHiRKWnp2vw4MHatm2bIiIinNrPzs5WRESEunfvrquuukqNGzdWQkKCjh8/rq1bt2r69OnatGmT3n33XdWtW1fJycn5Yhw4cKAOHDig8PBw3X333br66quVlJQku92uffv2afXq1Vq0aJFbx52dna27775bc+fOlSSNHDlSL774otPIkT/kGCDoWF3ZAMHg4Ycfdpw9e+aZZ/Ktz8jIMLp16+Z0ls3ds7pr1651nHlv3769cfbs2XzbfPDBB059uHNW15XCRiwGDhzoGFU4depUgW0cO3as0D5c8dSIhSSjT58++c6CZmVlGZdccokhyYiNjTWioqKMESNG5GvnzJkzjjOuF110kcu+tm/fbtjt9gJj+eOPP4yYmBhDkjF27Nh86828jwX9LpcvX+7os379+kX+ngsTSJ/tnNGloj5X3vxsG4bz9yoyMtJYvXp1vm0+//xzxzaVKlUyKlasaGzfvj3fdtOnT3ds99FHH+Vbf/r0aePAgQMFxmK3243BgwcbkoyyZcsaJ0+edFr/999/Fzoikbud48eP51vuasQiLS3NuPHGGx3tTpgwwWWb3v49AHAf11gAXpaRkaE5c+ZIOn9W7bHHHsu3TXh4uObMmaPw8PAS9zN79mzHbV9ff/11RUdH59umb9++uvHGG0vchzsOHjwoSWrVqpViYmIK3C4hIaFU4nGlTJkymj17tkJDQ52Wh4aG6p577pEknTp1SpUqVdLzzz/vcv9BgwZJkv744w+lpKTk26ZevXqFXoPSrFkz3XXXXZKkjz/+ON96T7+PH3/8sa655hqdPn1aF110kb7//vsS312Lz7b3P9sjRozQxRdfnG/5tddeq1q1akmSjhw5oqeeekr16tXLt92QIUMUFRUlSfr+++/zrS9btqyqVKlSYP82m00vvviiQkNDdebMGX399ddO63PeC0nq2LFjoe2UL1++wPU5Tp8+rWuvvVaLFi2SzWbTtGnT9MQTT7jc1h9yDBBsKCwAL1uzZo1OnDghSRo0aFCBf2RWr15d3bp1K3E/Of/ht2zZUk2aNClwu9tvv73Efbgj54+V7777Tn///Xep9Omuq666qsA/Opo3b+74d+/evQv8wzj3djt37iyyzxMnTujvv//Wpk2btHHjRm3cuFHlypWTJG3evFmZmZlO23vyfXzzzTfVt29fpaen69JLL9XKlSuVlJRU4vb4bHv/sz1gwIAC11100UWSzv/RXtA0sOjoaDVo0EDS+Yu0i5KZmal9+/bpzz//dHw+Dxw4oAoVKkiSfv/9d6ftcxclb775ZpHtF+bYsWO68sortXz5coWFhendd9/V0KFDC9zeH3IMEGwoLAAv27Bhg+Pfbdu2LXTbdu3alaiPtLQ0bd++XZLUunXrQrdt06ZNifpwV84feceOHVPTpk01YMAAzZ071xFnUWrXru3yzjy571xV0N17CrszUG4XXHBBgety/th3Z7tTp0653GbDhg264447VKVKFSUkJKh+/fpq2rSpmjVrpmbNmjnitNvtjj/Uc5h9H3NMmTJFd9xxh7Kzs9W9e3ctW7bMKfaS4LNt7ndSHMX57FWsWLHQ0YCc7Qr6fGZmZmr69Om65JJLFBMToxo1aqhx48aOz2ezZs10+PBhScp3B7M6dero8ssvlyS9/PLLatKkiZ588kl98803Onv2bHEPU//88486duyoX375RdHR0fr44491yy23FLpPaf4eABQPhQXgZcePH3f8O++FuXklJiaWqI+TJ086/l2pUqVCty1qvadceeWVmjZtmqKjo5WWlqb3339fd9xxhxo0aKDq1avr3nvvzXf2s7SVKVOmwHUhISFub5ednZ1v/Zw5c9SqVSvNnTvXadpIQc6dO+f0s6fex1deeUWGYahSpUpauHBhocdUXHy2vf/ZLs5nr6jfZc52rj6fx48fV/v27TVs2DD9/PPPhd46Wcr/+ZSk9957T+3bt5d0ftTtqaee0pVXXqly5cqpY8eOmjlzptLS0gptd+nSpdq8ebMkKTk5Wddee22h20v+kWOAYENhAZSiwubaB6KhQ4dq165devnll3XNNdcoPj5ekrR//37NmjVLLVu2dNyBKq+lS5dqw4YNLl9PP/20JKlq1aoFbrNhwwbdf//9pXasrvz111+69957lZWVpcqVK2vy5Mlas2aNjh07poyMDBmGIcMwHNcpSHJcS5CbmfcxR58+fSSdn48/cOBAZWVlefBI+WyX5HfiCx588EGtWbNGktSrVy99+umn2rVrl86ePSu73e74jNaoUUOS689ntWrV9NNPP+nrr7/W/fffryZNmshmsykzM1Pff/+97rvvPjVt2lRbt24tMI4OHTo4is/x48fru+++K1b8gfJ7AAIFhQXgZbmnKBT1gKiSPkAq95SWI0eOFLptUes9rXLlyhoxYoQWL16s48ePa82aNRo7dqzKlSsnwzA0ceJEx21Ec7vgggvUtGlTl69q1apJOn9hcEHbNG3atMiz6N725ptvKisrS6GhoVq5cqUefvhhtWrVSgkJCU7XbOQ+81+Qkr6POV544QXHfPVFixbp5ptvNl1c8Nk29zuxWmpqqt5//31J0q233qpFixapZ8+eqlWrlqKjo52KxbxT9Fy58sorNX36dG3cuFFHjhzRggUL1KVLF0nS33//XejtgOvXr6/ly5erUqVKOnv2rK699lr9+OOPxToOf/89AIGEwgLwsmbNmjn+/euvvxa6bVHrCxIVFeW4I0zO2ceC/Pbbb4Wu9+aZ55CQELVq1UpPPfWU0xOe//e//3mtTytt2rRJ0vkLvBs2bFjgdkX9TvIq6fs4depU/ec//5Ekffjhh7rttttcTo8pLn/7bBfFzGffHz/b27Ztc9wsoLA/+v/66y+dPn3arbYrVKig/v37a/ny5br++uslSevXr9e2bdsK3KdJkyZavny5KlasqNOnT+vqq6/WqlWr3OrXH38PQCChsAC8rHXr1o4zu++8847LqQTS+aH7pUuXlrifK6+8UpK0bt06xx+0rrz99tuFtpNza0pJSk9PL3E8RWnVqpXjfcl7QWigyBkROHPmTIHb/PPPP/r0009L3Ic776PNZtOMGTMct7d9//33dfvtt8tut5eob3/7bBcl57Nv9nPvL5/t3CNWhX1GZ86caaqfnN+fVPT70axZM3399ddKSEjQqVOn1KNHjxI/4M5ffg9AIKGwALwsMjLScRej9evXa/Lkyfm2ycrK0t13313khZOFueeeexxnXO+++26XF1kuXLiwyCfg5r59pJlbOL7//vsuY8jx22+/OaZXFPdp3v4m5zaf27Zt008//ZRv/dmzZ3XLLbcU+j55+n202WyaPXu24zM5f/58DR48uETFhb99touS89k/fPhwgXdQkgLns12/fn3H+/rWW2+5LAw/++wzTZs2rcA21q9fr/Xr1xe43jAMx+2CbTZbsZ6Z0rx5c3399dcqX768UlNT1a1bN5ejUYHyewACSZjVAQDB4Mknn9T//vc/7du3T6NHj9b69et1++23q3Llytq6dateeukl/frrr2rTpk2Jp3O0bt1ad999t2bPnq1Vq1apbdu2euSRR9S0aVOlpqbqo48+0owZM9SuXTvHGUBXUz9atmypqKgopaWl6YknnlB4eLhq1arluLNMtWrVXD6gLK/Ro0fr3nvv1Q033KCOHTvqggsuUNmyZXXs2DH98MMPmjp1qqTzD6PLOYMeaAYOHKipU6fKbrfr2muv1SOPPKLLLrtMUVFRWrNmjV5++WVt27ZNHTp0KHA+uTfeR5vNpv/+97/Kzs7W22+/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1UtVq1Z1bF+/fn1dffXVTrF89NFHstvt6tevn44ePep4JSUlqUGDBo67K5w7d06SXF5YFhUV5bRNQd58801t2LBBzz33XKHb3XfffTp58qT69++vdevWaevWrRoxYoSjMi+on9TUVC1evFjXXHONypUr53Kbm2++WcuWLdP8+fN1yy23FCvuvM6dO2fqfcjt0ksv1Ycffqg77rhD119/vR577DGtXr1aNptNY8aMcSsu+DfyAnkhB3kBEjmBnPCvQM8J3BXKpNwJQZLi4+MlSTVq1HC5/MSJE45lx48fV3JyshYsWKDDhw87bZ+SkiJJOnz4sM6dO+fyTgF5l23btk2GYahBgwYuYw0PD5f0b5JKT0/Pt01aWprTNq6kpqZqzJgxeuSRR/IdZ15XX321pk6dqscee0ytWrVyxD1x4kQ9+uijiomJcbnfwoULlZaWVuDQpiTVqlVLtWrVknQ+cdxzzz3q2rWrtmzZUuwhzujo6BK/D8VRv3593XDDDfroo4+UnZ2t0NBQU+3BP5AXyAuFIS8EH3ICOaEwgZQTKCxMKuiXX9ByI9d8yH79+umnn37SI488ohYtWigmJkZ2u109evRwml9ZXHa7XTabTUuWLHHZf84XMyEhQZGRkfrnn3/ybZOzLPcZj7xeeOEFZWRkqH///o6L0/bt2yfpfDLctWuXqlatqoiICEnSsGHDNGTIEP3xxx+KiIhQixYtNGfOHEnSBRdc4LKPefPmKT4+Xtddd10xj17q27evXn/9dX333Xfq3r17sfapUqWKVqxYIcMwnOZ+Fud9KK4aNWooIyNDZ86cUVxcnOn24PvIC7skkRcKQ14ILuSEXZLICYUJlJxAYWGREydOaPny5UpOTtaTTz7pWJ73zgeVK1dWVFSUtm/fnq+NvMvq1asnwzBUp06dAr+EkhQSEqJmzZq5vFDo559/Vt26dRUbG1vg/nv27NGJEyfUpEmTfOueeeYZPfPMM1q3bp1atGjhWF62bFmnYeCvv/5a0dHR6tChQ742/vnnH61YsUKDBw926z7gOUOROWdwiqNFixb673//qz///FONGzd2LP/5558d683asWOHoqKiCjzjAuQgL5AXgNzICeQEf8M1FhbJOUtg5Hn645QpU/Jt17VrV3388cc6cOCAY/n27du1ZMkSp2179+6t0NBQJScn52vXMAynW9P17dtXv/76q1PC2LJli7755hvddNNNhcb+wAMPaNGiRU6vWbNmSZIGDx6sRYsWqU6dOgXu/9NPP+mjjz7SnXfe6Rj2zW3BggWy2+0FDm0eOXLE5fI5c+bIZrM5hlGL44YbblB4eLhee+01xzLDMDRz5kxVq1ZNl156abHbchXX77//rk8//VTdunVTSAhfNxSOvEBeAHIjJ5AT/A0jFhaJi4tTx44d9fzzzyszM1PVqlXT0qVLtXPnznzbjh8/XkuXLlWHDh103333KTs7W9OmTVPTpk21fv16x3b16tXT008/rTFjxmjXrl3q1auXYmNjtXPnTi1atEj33HOPHn74YUnS/fffr9dff13XXnutHn74YYWHh+ull15SYmKiHnroIaf+O3furJUrVzoSUKtWrfJ9IXOGOZs0aaJevXo5lu/evVv9+vXT9ddfr6SkJG3atEkzZ87URRddVOBTL+fNm6eqVauqc+fOLtdPnDhRP/74o3r06KGaNWvq+PHjWrhwoX799VcNHz7crSdXVq9eXSNGjNDkyZOVmZmptm3b6uOPP9b333+vefPmuTXPsX///oqOjtall16qypUra/PmzZo9e7bKlCmjZ599ttjtIHiRF8gLQG7kBHKC3ymlu08FBFe3kLv22mvzbSfJ6emMhuH6Fmv79u0zbrzxRqNcuXJGfHy8cdNNNxkHDhwwJBnjxo1z2n/58uVGy5YtjYiICKNevXrGf//7X+Ohhx4yoqKi8vW/cOFC47LLLjPKli1rlC1b1mjYsKExdOhQY8uWLU7b7d271+jbt68RFxdnxMTEGNddd52xbdu2fO21bt3aSEpKKvS9KegWcsePHzduuOEGIykpyYiIiDDq1KljjB49Ot8t5XL89ddfhiRj1KhRBfa1dOlS47rrrjOqVq1qhIeHG7GxsUaHDh2MuXPnGna7vdA4XcnOzjaeeeYZo1atWkZERITRpEkT491333W7nVdeecVo166dkZCQYISFhRlVqlQxbrvtNpfvKQIHeaFg5AXyQjAiJxSMnBD4OcFmGHnGweA3evXqpU2bNhX6REqzTp06pYSEBE2ZMkVDhw71Wj8APIO8ACA3cgJKk39P5Aoiee+RvG3bNn3xxRcFDgF6ynfffadq1arp7rvv9mo/ANxHXgCQGzkBVmPEwk9UqVJFgwcPVt26dbV7927NmDFD6enpWrduXYH3og5m586dK/KODwkJCY7b3BXm9OnTOn36dKHbVKpUya/vOw3/RF5wD3kBgY6c4B5yghdYOxMLxTV48GCjVq1aRmRkpBEXF2d0797dWLNmjdVh+aycOa6FvVasWFGstsaNG1dkWzlzaYHSRF5wD3kBgY6c4B5ygucxYoGA9M8//2jTpk2FbtO6dWuVL1++yLZ27NihHTt2FLrNZZddpqioKLdiBFC6yAsAciMneJ7XCovp06dr8uTJOnjwoJo3b66pU6eqXbt23ugKgB8gJwDIi7wABBavXLz9/vvva9SoURo3bpzWrl2r5s2bq3v37jp8+LA3ugPg48gJAPIiLwCBxysjFhdffLHatm2radOmSZLsdrtq1Kih4cOH67HHHit0X7vdrgMHDig2NlY2m83ToQHIxTAMnTp1SlWrVvXq0z7N5ISc7ckLgPeVVk6QyAuAv3AnL3j8ydsZGRlas2aNxowZ41gWEhKirl27atWqVfm2T09PV3p6uuPn/fv3q3Hjxp4OC0Ah9u7dq+rVq3ulbXdzgkReAKzmzZwgkRcAf1ScvODxwuLo0aPKzs5WYmKi0/LExET99ddf+bafNGmSkpOT8y0fMWKEIiMjPR0egFzS09M1ZcoUxcbGeq0Pd3OCVHBeAFA6vJkTJM/mhb179youLs4rcQKQUlNTVaNGjWLlBY8XFu4aM2aMRo0a5fg5J/jIyEgKC6CU+No0goLyAoDS4Ws5QSo4L8TFxVFYAKWgOHnB44VFxYoVFRoaqkOHDjktP3TokJKSkvJtTwEBBDZ3c4JEXgACHXkBCEwevzIrIiJCrVu31vLlyx3L7Ha7li9frvbt23u6OwA+jpwAIC/yAhCYvDIVatSoURo0aJDatGmjdu3aacqUKTpz5oyGDBnije4A+DhyAoC8yAtA4PFKYdG/f38dOXJETz75pA4ePKgWLVroyy+/zHeRFoDgQE4AkBd5AQg8XnvydkmlpqYqPj5eo0ePZi4l4GXp6el67rnnlJKS4tMXP+bkBQClw9dzgvRvXvCHWAF/5s53zbtPvwEAAAAQFCgsAAAAAJhGYQEAAADANAoLAAAAAKZRWAAAAAAwjcICAAAAgGkUFgAAAABMo7AAAAAAYBqFBQAAAADTKCwAAAAAmEZhAQAAAMA0CgsAAAAAplFYAAAAADCNwgIAAACAaRQWAAAAAEyjsAAAAABgGoUFAAAAANMoLAAAAACYRmEBAAAAwDQKCwAAAACmUVgAAAAAMI3CAgAAAIBpFBYAAAAATKOwAAAAAGAahQUAAAAA0ygsAAAAAJhGYQEAAADANAoLAAAAAKZRWAAAAAAwjcICAAAAgGkUFgAAAABMo7AAAAAAYBqFBQAAAADTKCwAAAAAmEZhAQAAAMA0CgsAAAAAplFYAAAAADCNwgIAAACAaRQWAAAAAEyjsAAAAABgGoUFAAAAANPcKiwmTZqktm3bKjY2VpUrV1avXr20ZcsWp23S0tI0dOhQVahQQTExMerTp48OHTrk0aAB+A7yAoDcyAlA8HKrsFi5cqWGDh2q1atXa9myZcrMzFS3bt105swZxzYjR47UZ599pg8++EArV67UgQMH1Lt3b48HDsA3kBcA5EZOAIKXzTAMo6Q7HzlyRJUrV9bKlSvVsWNHpaSkqFKlSpo/f7769u0rSfrrr7/UqFEjrVq1SpdcckmRbaampio+Pl6jR49WZGRkSUMDUAzp6el67rnnlJKSori4OI+06c28AKB0+HpOkP7NC56MFUB+7nzXTF1jkZKSIklKSEiQJK1Zs0aZmZnq2rWrY5uGDRuqZs2aWrVqlcs20tPTlZqa6vQC4L/ICwBy80ROkMgLgD8ocWFht9s1YsQIdejQQU2bNpUkHTx4UBERESpXrpzTtomJiTp48KDLdiZNmqT4+HjHq0aNGiUNCYDFyAsAcvNUTpDIC4A/KHFhMXToUG3cuFELFiwwFcCYMWOUkpLieO3du9dUewCsQ14AkJuncoJEXgD8QVhJdho2bJg+//xzfffdd6pevbpjeVJSkjIyMnTy5EmnMxGHDh1SUlKSy7YiIyO5lgIIAOQFALl5MidI5AXAH7g1YmEYhoYNG6ZFixbpm2++UZ06dZzWt27dWuHh4Vq+fLlj2ZYtW7Rnzx61b9/eMxED8CnkBQC5kROA4OXWiMXQoUM1f/58ffLJJ4qNjXXMhYyPj1d0dLTi4+N15513atSoUUpISFBcXJyGDx+u9u3bF/suDwD8C3kBQG7kBCB4uVVYzJgxQ5LUuXNnp+Vz587V4MGDJUkvv/yyQkJC1KdPH6Wnp6t79+567bXXPBIsYFaXLl3UqVOnYm8/efJknT592osR+T/yAvzdhAkT9MQTTxR7+6SkJB7mVghyAhC8TD3Hwht4jgW8KTk52a3td+zYobfeestL0VjPG8+x8AaeYwFvcve/weXLlzvdKjUQ+XpOkHiOBVBaSu05FkCgq1u3rtUhAPAxV155pdUhAIBPKtFdoQBfkJCQoNq1a+uGG26wOhQAPqJ+/frq1KmT/vvf/1odCgAEHUYs4LdatGhBUQHAyaBBgygqAMAijFjAL0RERCgyMlIVKlRQt27dVK1aNatDAmCxmJgYxcXFqUGDBpo8ebLatm1rdUgAENQoLODzypQpo9GjR1sdBgAfUrFiRR05csTqMAAAuTAVCj4vJibGsr75wwXwTYU9odnb/vzzT8v6BgBfxoiFxdy9/WlukyZNUlpamgej8S2PP/645bccznmwE1CazNwFvHz58jp58qTngvExp06dsvRkgyT9/vvvlvYPAL6KEQs/duGFF1odgldZXVRI0po1a6wOAXDLddddZ3UIXmV1USFJs2fPtjoEAPBJjFj4iFdeeUWZmZnF2vbhhx+WdH4qAGfOPGfq1KnKyspSRkaGsrOzlZWVpezsbKvDAtzSsmVLvfvuu1aHETAaNWqktLQ0nTp1SpmZmUpLS1NGRobVYSGI1alTR+fOnSvWtoy6o7RRWHiBzWbT+PHj3drn1KlTbv8Re+mll+rSSy+VJI0bN86tfX3VnXfeqZo1a1rS99GjRy3pF8EhJCSkVArVUaNGadSoUZLO56JA8OOPPzpyXWn766+/LOkXKMiBAwcobuGzmArlBaGhoW7vw5nx86wqKgBvCw8PtzoEv2VVUQH4ouLObgCswIhFCUVFRSkuLk5ly5bVddddp4oVK7rczszF2QXJ3WagjFSUhgkTJlDAwavi4+NVo0YNVapUSTNnztQFF1xgdUgoQkREBH+owSd4Y4Qxd5tmbgoBFBeFRQndeeedqly5stVhwA12u93qEBDgfvrpJzVu3NjqMOAGTjYAgOdQWJRQcYqKDz74oBQiQWFWrlypPXv26MiRI5ytgddRVPiHp556Sj/99JM2bdrECQf4hJtuusnqEACPoLAwyRtTnYJNeHi4xo4d65G2mBoGBIbo6GidPXvWI20FykXs8G98DhEMuHgblitfvrxH2vn444890g4A69WtW9cj7QwZMsQj7QAAisaIRTGEh4crMjJSoaGhio2NVVRUlNUhBQSbzSabzaayZcu6vS8jE7BamTJlFBsbq8jISFWpUsVjBXKws9lsCg0NLdE1bJwRBgBrUVgUoVKlSho2bJjVYQSk+++/nwvg4ZcaN26sTZs2WR1GQNq4cSPXqgCAn2IqVBFq1apldQgBq6RFxaeffurhSAD3XH755VaHELBKWlTcfffdHo4EAOAuRixyiYqKUteuXdW2bVuX6z11oXZsbKzjybje7McXhYeHq02bNmrZsqXb+27atEn/+9//vBAVULD4+HhNmjRJ9913n9WhBKzo6Gjde++9uuOOO9ze98MPP+SOOvA5npqWV7VqVe3fv9/r/QCeQmGRy8UXX1xgUeFJJfnPM1DUqVNHPXr0KNG+v//+u4ejAYo2fPhwigovu/LKK/XSSy+VaN+3337bw9EAvuPHH3+0OgTALUyFyqVp06Yul//xxx+aPHmyx/opV66c08/Z2dlasWKFx9r3ZdWrV3d7n6lTp+r555/X1q1bvRARULibb77Zkn6zsrI0fvx4S/oube3atXN7n0aNGikxMVGLFy/2QkRAybz77ruqVKmSx9qrXbu2x9oCSgMjFrnknvPvqelIRd29KPf6K664wiN9+rJOnTq5vY/dbtejjz5aov7ee+89/fXXXyXaF5Cseehd7ukNwVBcPPHEE27vk5mZqUOHDpWovxtvvJHbU8NjPDUdiYe4IhAwYmEhnsxdtN9++00XXXRRife36mwzUFIDBgywOgSfN2vWLN12220l3n/RokUejAYAkCNoRyzCw8NVqVIlxcTE6NZbb/V4+5dffrm6dOni+Hn37t164403PN6Pv4iJiSnRXaDatGljuu9atWrp+PHjOnXqlOm2ENjKlCmjxo0bKykpSZ999pnX+/vhhx+C+g5TiYmJBU5BLcx//vMf03137NhR27Zt0z///GO6LcCM//u//9PTTz9tdRiARwRtYTF27FivtR0ZGelUVEjSn3/+6bX+/MEjjzxiWd85F8tPmDBB2dnZlsUB33fmzJlS7W/hwoWl2p+vOXjwoGV9r1y5UpIUERGhzMxMy+JAcIuPj6eoQEBhKpQLL7/8sqn9o6Oj8y1bu3atqTZhXmhoqNUhAE7mzJljdQhBLyIiwuoQ4Mdq1qxpav/y5ct7KBLANwTtiEUOsxdpN23aVH369HG5bvXq1VqyZEmh+yclJXEry1ISHh6ujIwMq8NAkHvllVc0YsSIQrdp3ry51q9fXyrxBLsyZcqU+kgV/JPZi7RvvvlmzZ8/30PRAL6JEQuTCioqJGnDhg1F7k9RUXoSExOtDgHQggULityGoqL0mLk5BOAOigoEg6AfsfCkF198UefOnVNWVpbbt4175ZVXlJaWpvT0dC9Fh/j4eKtDQBCqXr26jh8/rrS0NG4n6YPMTmUBSludOnWUkpKi1NRUq0MB8qGwKCFXz6cw8yU/ffq0srKyzISEIvTq1Uu9evWSVPTzRQBP2b9/v9UhoBBvvPGG4459nnoeAZCbp08oHDp0SOfOnfNom4CnMBXKQ958802rQ/BpFE0IRnnvDgdnjNACQGAJqhGLmJgYU7c9veiii3TjjTc6LSvJme+wsDANGTJE1atXL/Y+ISEhJXo6ra946qmnJJm/WN7V++2pp6QjOCUmJnr8tqclOfMdGRmplStX6uKLL/ZoLL4sKipKkvkzuq7eb6adwUoDBw7U22+/bUnfYWFh3EIZlgmqEQuzz1LIW1SUVLNmzfIVFXa7vdB9qlWr5pG+rbZ582arQwCcWPkshdxuueWWoCoqcvvoo4+sDgHwKG8WFUUVDcGaR+AbgqqwyMtsRT937twS7efqSbNmCouSxmGFjz76SN9//73bU6OOHTum5557zktRAZ5zxRVXlGi/AQMG+EQcVhg4cKAmTZrk9u2gt2/frooVK3opKuBfvnRNQ1H/f7Zr166UIgHyC6qpULmZmT4zdepUHT161CN9FjeOkJB/a0BfvPC4OMfx1ltvaceOHfr666/19ddfe60fwAoNGzbUli1b3N7PU1N2fPHC4+IcW9euXbV8+XI9/vjjevzxx73WD1BSvvLdKm4cYWFB+6cdfEBQj1iUFA9TKplBgwZZHQLgNUeOHLE6BL9U0pMMAADfQ1lbDNHR0YqJiXH87O4UqrxnGYL5rHujRo2UmZmpzMxMl2cZ7Xa743keYWFhio6OVlhYmCIiIhQZGWlBxEDxuHvCwVfOgvqCG2+8UWfPntW5c+dcTgvNysrSyZMnlZqaqqioKCUkJCgqKkply5ZVXFycBREDriUkJKhKlSoea488AX9DYVGECy+8MN/cZ3eG3WNjYzVo0CBVqlTJ06H5JU/PIwd8RVHXSeVWpUoVLV++XI0aNfJiRP6Di7cRCK6//np98sknVocBWIqpUEW45JJLnH7+9ttvlZ2dXez9ExISKCqAADdhwgS3RjIbNGhAUQEEmFGjRlkdAmA5RiyKkHsKVHEvmrbZbBo/fny+5cWdAuVqlCTHF198Uaw2AJSO4k5VsNlsbo1quGP48OFeaRdA8SUmJnqsreLmFUZJ4GtMjVg8++yzstlsGjFihGNZWlqahg4dqgoVKigmJkZ9+vTRoUOHzMbpV1zdkWHZsmXF3r+w6UK7d+8uUUz41/Lly60OIWCREwoWHR3ttbZ/+OEHr7UdLMaOHWt1CAGLvOCeRx99tNjbUlTA15R4xOLXX3/VrFmzdNFFFzktHzlypBYvXqwPPvhA8fHxGjZsmHr37q0ff/zRdLD+Im9hsWzZMq1atarE7S1fvlw///yzsrOz3ZqGBWefffaZNmzYwBNJvYScUDhP33xg7NixevXVV5WZman09HSPth1M7r33Xr333nvc7c9LyAvuefTRR/XSSy9ZHQZQYiUqLE6fPq1bb71Vr7/+up5++mnH8pSUFM2ZM0fz589Xly5dJJ1/eFujRo20evXqfNcrBIKYmJhCn+ht9g5QvvjMCn917Ngx/gDzEnKCs6SkJP3zzz9ea587xXjO1q1blZqaanUYAYm84B6+1wgEJZoKNXToUF177bXq2rWr0/I1a9YoMzPTaXnDhg1Vs2bNAs/Yp6enKzU11enlT+rUqWN1CCgmhtm9x5M5QfL/vNC5c2erQ0Ax/fHHH1aHELDIC0DwcXvEYsGCBVq7dq1+/fXXfOsOHjyoiIgIlStXzml5YmKiDh486LK9SZMm+fRzHXJfbFlUnL58HJDOnTtndQgBydM5QfL9vJAbT332bydOnLA6hIAUjHkhKyur2NsyOoFA5daIxd69e/Xggw9q3rx5ioqK8kgAY8aMUUpKiuO1d+9ej7TrKRs2bLA6BMBneSMnSL6fFxA4KAw9L1jzwvz5860OAbCcW4XFmjVrdPjwYbVq1UphYWEKCwvTypUr9eqrryosLEyJiYnKyMjQyZMnnfY7dOiQkpKSXLYZGRmpuLg4p5cvcXW2xZU33njD433nfR99ma/emeLo0aN699139dJLL/EHhBd4IydIvp8XrORPd4a76667rA7Bpa1bt+qaa65RrVq1yAteEKx5Yfr06cXa7rLLLvNyJIB13JoKdeWVV+Y7gz9kyBA1bNhQo0ePVo0aNRQeHq7ly5erT58+kqQtW7Zoz549at++veei9oCci6KLGlZNT08vtaHXvBdq+9Noydq1a7V27VqnZVYOWXPRe+kIpJzgL9577z2rQyi2OXPmaM6cOU7LrPxDnuknpSPQ8kLOZ7aoz09qamqpfcYoiOGr3CosYmNj1bRpU6dlZcuWVYUKFRzL77zzTo0aNUoJCQmKi4vT8OHD1b59+6C9y4MZmzdvtjoEoFDkhNK3cOFCq0MACkVeAIKXx5+8/fLLLyskJER9+vRRenq6unfvrtdee83T3ZTIuHHjFBkZqaioKI0aNcrqcAqUnJwswzD8/ozE+PHjFR4ertDQUNlsNoWHhysxMVG33nqrR/t54YUXlJGRoczMzIB43wKNL+cE6fxZyLi4OMXHx2vPnj1Wh1Og8PBw2e12rz29u7SEhoYqOjpaERERjn83b95cn332mUf7qVq1qs6cOaMzZ87IMAy/f98Cja/nBQAlY7qw+Pbbb51+joqK0vTp04s917C0paenW/4sg3bt2unqq68ucH2g/AdoGIYyMjKclnl6mHjbtm06deqUR9uEOf6WEyT5xa0r3bnjjC+z2+2OP/hzhISU6M7nBfryyy+9+hwRuM8f84IvGD58uF599VWrwwCKzbPZHMVSWFGxYMGCUoyk9J06dUrvv/++1qxZY7qtI0eO6Msvv/RAVIBv6927t9UheNU///yjvn376vXXXzfd1p9//qkRI0aYDwrwARQV8DcenwoFZ7Vq1dLgwYMLXB9sFxlnZ2dr8+bN2rx5sz799FOrwwF8UrBdZJyRkaGFCxdq4cKFuueee6wOB7BEx44dtXLlSqvDAExhxMLLCisqAAAAJFFUICBQWFjo5ZdftjoEAD6mTp06VocAAECJBP1UKFdTkd577z1t3brVI23lWLBggf7880+32wQQuHr37q1FixZZHQaAYnB1x8GePXvq888/90hbQCAI2hGLH374ocB1N998s8f727dvn8fbBOBZzz33XKn29/PPP5dqfwA8y9O3SQb8XdCOWCxbtkzLli1zWpb7SdGJiYklbjvYLsgGAsVjjz2mxx57zGmZp84sBtsF2UCwuOiii6wOAfAZQVtYFOXee++1OgQAAODjfv/9d6tDAHxG0E6FcuXdd9813cbff//tgUgA+IprrrnGdBt5R0cBAAhEjFjksm3bNqYxAXCyZMkSpjEBAFAMjFgAAAAAMI3CAgAAAIBpFBYAAAAATKOwAAAAAGAahQUAAAAA0ygsAAAAAJhGYQEAAADANAoLAAAAAKZRWAAAAAAwjcICAAAAgGkUFgAAAABMo7AAAAAAYBqFBQAAAADTKCwAAAAAmEZhAQAAAMA0CgsAAAAAplFYAAAAADCNwgIAAACAaRQWAAAAAEyjsAAAAABgGoUFAAAAANMoLAAAAACYRmEBAAAAwDQKCwAAAACmUVgAAAAAMI3CAgAAAIBpFBYAAAAATKOwAAAAAGAahQUAAAAA0ygsAAAAAJhGYQEAAADANLcLi/379+u2225ThQoVFB0drWbNmum3335zrDcMQ08++aSqVKmi6Ohode3aVdu2bfNo0AB8C3kBQG7kBCA4uVVYnDhxQh06dFB4eLiWLFmizZs368UXX1T58uUd2zz//PN69dVXNXPmTP38888qW7asunfvrrS0NI8HD8B65AUAuZETgOAV5s7Gzz33nGrUqKG5c+c6ltWpU8fxb8MwNGXKFI0dO1Y33HCDJOntt99WYmKiPv74Yw0YMMBDYQPwFeQFALmRE4Dg5daIxaeffqo2bdropptuUuXKldWyZUu9/vrrjvU7d+7UwYMH1bVrV8ey+Ph4XXzxxVq1apXnogbgM8gLAHIjJwDBy63CYseOHZoxY4YaNGigr776Svfdd58eeOABvfXWW5KkgwcPSpISExOd9ktMTHSsyys9PV2pqalOLwD+g7wAIDdv5ASJvAD4A7emQtntdrVp00bPPPOMJKlly5bauHGjZs6cqUGDBpUogEmTJik5OblE+wKwHnkBQG7eyAkSeQHwB26NWFSpUkWNGzd2WtaoUSPt2bNHkpSUlCRJOnTokNM2hw4dcqzLa8yYMUpJSXG89u7d605IACxGXgCQmzdygkReAPyBW4VFhw4dtGXLFqdlW7duVa1atSSdvzgrKSlJy5cvd6xPTU3Vzz//rPbt27tsMzIyUnFxcU4vAP6DvAAgN2/kBIm8APgDt6ZCjRw5UpdeeqmeeeYZ9evXT7/88otmz56t2bNnS5JsNptGjBihp59+Wg0aNFCdOnX0xBNPqGrVqurVq5c34gdgMfICgNzICUDwcquwaNu2rRYtWqQxY8ZowoQJqlOnjqZMmaJbb73Vsc2jjz6qM2fO6J577tHJkyd12WWX6csvv1RUVJTHgwdgPfICgNzICUDwshmGYVgdRG6pqamKj4/X6NGjFRkZaXU4QEBLT0/Xc889p5SUFJ+eVpCTFwCUDl/PCdK/ecEfYgX8mTvfNbeusQAAAAAAVygsAAAAAJjm1jUWpSFnZlZ6errFkQCBL+d75mMzIvPx9fiAQOMP37mcGHlQHuBdOd+x4uQFnyssTp06JUmaMmWKtYEAQeTUqVM+fQ1DTl4AUDp8PSdI/+aFGjVqWBwJEByKkxd87uJtu92uAwcOyDAM1axZU3v37g2Ii7JSU1NVo0YNjsdHBdrxSMU7JsMwdOrUKVWtWlUhIb47M9Jut2vLli1q3Lhx0P2O/AnH49sCKSdIgZkXgvEz528C7Zg8nRd8bsQiJCRE1atXdwy7BNpDcDge3xZoxyMVfUy+flZSOp8XqlWrJik4f0f+huPxbYGQE6TAzgscj+8LtGPyVF7w7dMRAAAAAPwChQUAAAAA03y2sIiMjNS4ceMC5iF5HI9vC7TjkQLvmALteKTAOyaOx7cF2vFIgXdMHI/vC7Rj8vTx+NzF2wAAAAD8j8+OWAAAAADwHxQWAAAAAEyjsAAAAABgGoUFAAAAANMoLAAAAACYRmEBAAAAwDQKCwAAAACmUVgAAAAAMI3CAgAAAIBpFBYAAAAATKOwAAAAAGAahQUAAAAA0ygsAAAAAJhGYQEAAADANAoLAAAAAKZRWAAAAAAwjcICAAAAgGkUFgAAAABMo7AAAAAAYBqFBQAAAADTKCwAAAAAmEZhAQAAAMA0CgsAAAAAplFYAAAAADCNwgIAAACAaRQWAAAAAEyjsAAAAABgGoUFAAAAANMoLAAAAACYRmHhhjfffFM2m027du2yOhQAPoCcACAv8gKCGYVFkNqyZYtGjhypSy+9VFFRUaaT4FVXXSWbzaZhw4a5XH/o0CH95z//UbVq1RQVFaXatWvrzjvvzLfd119/rSuuuEIVK1ZUuXLl1K5dO73zzjv5tpsxY4Zuuukm1axZUzabTYMHDy5x7JI0Z84cNWrUSFFRUWrQoIGmTp3qdhvjx4+XzWYr8PXjjz+aihHwJnKCM3ICQF7Ii7xQtDCrA/AnAwcO1IABAxQZGWl1KKatWrVKr776qho3bqxGjRpp/fr1JW7ro48+0qpVqwpcv3fvXnXo0EGSdO+996patWo6cOCAfvnlF6ftPv30U/Xq1Uvt27d3fPH+97//6fbbb9fRo0c1cuRIx7bPPfecTp06pXbt2umff/4pceySNGvWLN17773q06ePRo0ape+//14PPPCAzp49q9GjRxe7nd69e6t+/fr5lj/++OM6ffq02rZtaypO+B5ygmvkhPPICcGJvOAaeeG8gM8LBoLSsWPHjNTUVMMwDGPy5MmGJGPnzp1ut3Pu3Dmjdu3axoQJEwxJxtChQ/Ntc/XVVxt16tQxjh49WmhbV111lVG1alUjLS3NsSwzM9OoV6+ecdFFFzltu2vXLsNutxuGYRhly5Y1Bg0a5HbshmEYZ8+eNSpUqGBce+21TstvvfVWo2zZssbx48dL1G6OPXv2GDabzbj77rtNtQN4GznhPHIC8C/ywnnkheJjKpQb8s6brF27tq677jp9++23atOmjaKjo9WsWTN9++23ks5X582aNVNUVJRat26tdevWObX3xx9/aPDgwapbt66ioqKUlJSkO+64Q8eOHcvXd04fUVFRqlevnmbNmuWo1PN699131bp1a0VHRyshIUEDBgzQ3r17nbZJSEhQbGys6ffk+eefl91u18MPP+xy/V9//aUlS5bokUceUYUKFZSWlqbMzEyX26ampqp8+fJOZ3nCwsJUsWJFRUdHO21bq1Ytl8furhUrVujYsWO6//77nZYPHTpUZ86c0eLFi021/95778kwDN16662m2oFvIifkR04oHDkh8JEX8iMvFC6Q8gKFhUnbt2/XLbfcop49e2rSpEk6ceKEevbsqXnz5mnkyJG67bbblJycrL///lv9+vWT3W537Lts2TLt2LFDQ4YM0dSpUzVgwAAtWLBA11xzjQzDcGy3bt069ejRQ8eOHVNycrLuvPNOTZgwQR9//HG+eCZOnKjbb79dDRo00EsvvaQRI0Zo+fLl6tixo06ePOnRY9+zZ4+effZZPffcc/m+zDm+/vprSVJiYqKuvPJKRUdHKzo6WldffXW+eZqdO3fWpk2b9MQTT2j79u36+++/9dRTT+m3337To48+6tHYc+Qk8DZt2jgtb926tUJCQvIleHfNmzdPNWrUUMeOHU21A/9BTiAnFIacEJzIC+SFwgRUXrByuMTfzJ0712kYsFatWoYk46effnJs89VXXxmSjOjoaGP37t2O5bNmzTIkGStWrHAsO3v2bL4+3nvvPUOS8d133zmW9ezZ0yhTpoyxf/9+x7Jt27YZYWFhRu5f4a5du4zQ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n6k2cxw+fNiykZC0tDRL+oX7yAuFa9Omjb744gtVqlSp1PvOmbZ0ySWXeOx2zZs2bbJsJIRn2fgHckLJFPW9Mvu94+JvlAa3CosZM2ZIkjp37uy0fO7cuRo8eLAk6eWXX1ZISIj69Omj9PR0de/eXa+99ppHgvV1//nPf6wOQXfffbfl06I8Ye/evVaHgGIiLxTu119/tToErV692vJpUZ6watUqq0NAMZATgODlVmFRnGo3KipK06dPL3QaTTDYunWrFi9e7PV+3nnnHV1//fWKj4/3el+lYcuWLfrtt994AqsfIS/A2z777DPNmjVLv//+u9WhoBjICe75/PPPvT6NUJKuuuoqvfHGGwF7wTt8A4979gKz05vcsWPHDk2ZMsVplCKnf2+MXNhsNo0fP97j7eaYP3++19oGglnOH3veGLmw2WxevWX29ddf77W2ASuV5kji119/rZo1azIlCl5V4udYwLesWLGiVPoJhOkUADwr961wAfi2QJguDd/FiIVJERERuu2221SrVq0it73gggtM3Vb26NGjevfdd13eivW7777Td999J8m7SYPCAihaTEyMlixZossuu8zqUEoFeQHwrOuuu87UbWf/+usv9ejRQ7t37863bsKECZowYYIkLuiG5zFiYdL//d//FauokMw/q6JixYoaMWKEqTbM4swkULRTp04FTVEhKSieLQCUJrPPsmjYsKF27drlmWAAN1BYwC1hYd4b5Jo6darX2gbgPVFRUV5ru2HDhl5rGwDgWUyF8iBXF20PGTJENWvWdFpWkqlK4eHhGjt2rNP+zz//vM6dO1eseMxOj/LGBenM8wT+VZLpRGXKlNGZM2fc2if31AdfvC8+06oQDFx9zr///nuPj3TmfEcrVKig48ePe7RtwBVGLLwsb1FRUtnZ2fmWNWnSxCNtA/BPGRkZVocAwEO8OX2yf//+XmsbyI0Ri1I0ceJEZWZmlmhfu92ucePGyWaz6bHHHlNUVJSqV6+u3377Ld+2EyZMUEREhMLDw/XQQw+ZDdsrtm7danUIgE+IiYkpdOSxMFlZWbLZbAoJCdGJEycUFxfn4ehK1xdffGF1CEBAat++vePBhbmFhYUpJiZGZcqU0YEDByyIDIGGwqKE3J0adPDgQY+cXTQMQ9u3b1fTpk3VvHlzNW/ePF88hmEoPT1d6enp+eJ9/vnn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2mmnmaSkJJ+2P3PmTCPJrFq1yr3s+++/N9HR0SYrK8unbb3yyitGklm0aJFPrwPCAblQPXIBkYpMqF4kZgJToSw6ct5k69atdf755+vDDz9Uz549lZCQoM6dO+vDDz+UJC1atEidO3dWfHy8evTooa+//tpje2vXrtWoUaPUpk0bxcfHKzU1Vddee61+++23Kvuu2Ed8fLzatm2rZ555xj3EeKSXXnpJPXr0UEJCgho3bqwRI0YoLy+vxuNr1qyZ6tWrp71793r9MzHGqKioSMYYr18jHf7ZSfLYV1FRkeLj49WwYUOPdZs3b66EhASftv/666+rV69e6tWrl3tZ+/btdeaZZ+rVV1/1aVuPPPKIevfurYsvvlgul0v79+/36fUIb+RCVeQCIhmZUBWZEKaC2dWEg3nz5hlJZtOmTcYYY1q1amX+9Kc/mebNm5t77rnHPProo+b44483DRo0MC+99JJJT083M2bMMDNmzDDJycnmhBNOMOXl5e7tPfTQQ+bUU0819957r5kzZ44ZN26cSUhIML179zYul8u93ldffWWcTqdp3bq1mTFjhrn//vtNixYtTJcuXcyR/6xTp041DofDXHbZZebpp582U6ZMMU2bNjWtW7c2e/bsqXJMe/bsMTt37jRr16411157rZFk5syZU+PPouJTiAYNGhhJpn79+mbkyJEmPz+/2vVLSkrMrl27zJYtW8yiRYtMamqqadWqlSkrK3OvM2vWLCPJ/O1vfzPr1683mzdvNrNmzTKxsbEmOzu7xpoqlJeXG6fTaW688cYqz02aNMlIMkVFRV5tq7Cw0DgcDpOZmWmysrLcx5uRkWFeeeUVr2tC+CIX/kAukAsgEyojE8I7E2gsLKouLCSZzz77zL3O0qVLjSSTkJBgfvnlF/fyZ555xkgyH3zwgXvZ77//XmUfL7/8spFkPvroI/eyCy64wNSrV89s27bNvWzDhg0mJibGIyw2b95soqOjzf333++xzW+//dbExMRUWW6MMX/605+MJPcbf9KkSR6BdjTZ2dlmzJgxZv78+eb1118348aNMzExMaZdu3amsLDwqMdV8ejZs6dZu3atxzqHDh0yY8aMMbGxse71oqOjzaxZs2qsp7Jdu3YZSebee++t8txTTz1lJJkffvjBq2199dVXRpJp0qSJSUlJMU8//bSZP3++6d27t3E4HGbJkiU+1YbwQy78gVwgF0AmVEYmhHcmcPJ2AHTs2FH9+vVzf9+nTx9J0sCBA5Wenl5l+caNG3XGGWdIkseQ3cGDB7Vv3z717dtXkvTVV1/p1FNPVXl5ud577z1dfPHFatGihXv9E044Qeecc47eeust97JFixbJ5XJp+PDh+vXXX93LU1NT1a5dO33wwQe68847PeqfN2+eioqKtHHjRs2bN08HDhxQeXm5oqKOPXNu3LhxHt8PHTpUvXv31siRI/X000/rjjvu8Hj+z3/+s5YtW6a9e/cqJydHa9asqTJMGB0drbZt22rw4MEaNmyY4uPj9fLLL2vs2LFKTU3VkCFDjllThQMHDkhStSfOVVyJomKdmuzbt0+S9Ntvv+nzzz93/zteeOGFysjI0NSpU3X22Wd7tS1EDnLhMHIBOIxMOIxMCC80FgFQORAkKTk5WZKUlpZW7fI9e/a4l+3evVtTpkzRwoULq1wxoLCwUJK0c+dOHThwQCeccEKVfR+5bMOGDTLGqF27dtXWGhsbW2VZ5aAbMWKEOnToIEl66KGHqt3GsVx++eW65ZZb9N5771UJi5SUFKWkpEiSLr30Uk2bNk1/+ctftGHDBqWmpkqSZsyYoccee0wbNmxwXz1i+PDh+vOf/6zMzEydf/75iomp+de4IoRLSkqqPHfw4EGPdbzdVkZGhjsoJKlBgwa64IIL9NJLL+nQoUNe1YXIQS78gVwAyITKyITwEV5HYxNHXjKtpuWm0olLw4cP12effabbbrtNXbt2VYMGDeRyuXT22WfL5XL5XIvL5ZLD4dCSJUuq3X/lS71Vp1GjRho4cKDmz59fq7CQDofk7t27a1zv0ksv1T//+U/997//1Q033CBJevrppzVw4MAqdV544YWaMGGCNm/eXG1oHqlx48ZyOp3asWNHlecqllX+ROdYKtarCLrKmjVrprKyMu3fv9/9PwNAIheORC4g0pEJnsiE8EBjYSN79uxRTk6OpkyZorvvvtu9fMOGDR7rNWvWTPHx8frpp5+qbOPIZW3btpUxRhkZGTrxxBNrVdeBAwfcn4D4yhijzZs3q1u3bl7tR5LHvgoKCqq9uU3FzXEOHTrkVR1RUVHq3LmzvvzyyyrPrVy5Um3atFFiYqJX22rRooVSU1O1bdu2Ks9t375d8fHxXm8LqAm5QC4AlZEJZIKdcblZG6n4lMAccem17OzsKusNGjRIb7zxhrZv3+5e/tNPP2nJkiUe615yySWKjo7WlClTqmzXGONxabrqbtayefNm5eTkqGfPnjXWv2vXrirLZs2apV27dnnMI/z111+rvbzcv/71L0ny2NeJJ56oZcuWedRZXl6uV199VYmJiWrbtm2NdVW49NJL9cUXX3gERm5urt5//30NGzbM6+1I0mWXXaa8vDwtW7bM47j++9//auDAgTXOMQW8RS6QC0BlZAKZYGeMWNhIUlKSTjvtND3wwAMqKyvT8ccfr3fffVebNm2qsu4999yjd999V/3799eNN96o8vJyPfnkk+rUqZO++eYb93pt27bV1KlTlZWVpc2bN2vIkCFKTEzUpk2btHjxYo0ePVq33nqrJKlz584688wz1bVrVzVq1EgbNmzQs88+q7KyMs2YMcNj/6NGjdK///1vbdq0yX1N6VatWumyyy5zX3v7k08+0cKFC9W1a1f3cKV0+DrZs2fP1pAhQ9SmTRsVFxdr6dKlWrZsmS644AINHDjQve4dd9yhK664Qn369NHo0aOVkJCgl19+WatXr9bUqVOrnfd5NP/4xz80d+5cnXfeebr11lsVGxurRx55RCkpKbrlllu83o4kZWVl6dVXX9XQoUM1YcIEJScna/bs2SorK9O0adN82hZwLOQCuQBURiaQCbZWdxegCk/VXULuvPPOq7KeJJOZmemxbNOmTUaSefDBB93Ltm7dai6++GLTsGFDk5ycbIYNG2a2b99uJJnJkyd7vD4nJ8d069bNxMXFmbZt25p//etf5pZbbjHx8fFV9v+f//zHDBgwwNSvX9/Ur1/ftG/f3mRmZprc3Fz3OpMnTzY9e/Y0jRo1MjExMaZFixZmxIgRVS7rZowxQ4cONQkJCR7Xtv7b3/5mOnbsaBITE01sbKw54YQTzMSJE6tc8/mLL74ww4YNM+np6cbpdJr69eub7t27m0ceecTjutQV3nnnHXP66aebpk2bmri4ONO5c2cze/bsKut5Iy8vz1x66aUmKSnJNGjQwJx//vlmw4YNtdrWzz//bC6++GKTlJRkEhISzMCBAz3u1InIRS7scS8jF8gFkAlkQuRkgsMYH295CFsbMmSIvvvuuypzLf0tJSVFV111lR588MGA7geAdeQCgMrIBARK+E3uiiBHXkt5w4YN+t///ue+znWgfPfddzpw4IAmTpwY0P0A8B25AKAyMgF1iRGLENa8eXONGjVKbdq00S+//KJZs2appKREX3/99VGvRR2Odu/erdLS0qM+Hx0dreOOO86rbe3atavaK0tUiIuLU+PGjX2uEagr5MJh5AJwGJlwGJlQR4I7EwtWjBo1yrRq1co4nU6TlJRkBg8ebFavXh3ssurc6aefbiQd9dGqVSuvt9WqVatjbuv0008P2HEA/kAuHEYuAIeRCYeRCXWDEQuEvNWrV3vckfRICQkJ6t+/v1fb+vTTT6sMG1fWqFEj9ejRw+caAdQtcgFAZWRC3QhYY/HUU0/pwQcfVH5+vrp06aInnnhCvXv3DsSuAIQAMgHAkcgFILwE5OTtV155RRMmTNDkyZP11VdfqUuXLho8eHC1N1UBEP7IBABHIheA8BOQEYs+ffqoV69eevLJJyVJLpdLaWlpGjt2rO64445jvtblcmn79u1KTEyUw+Hwd2kAKjHGqLi4WC1atAjoHUCtZELF+uQCEHh1lQkSuQCECl9ywe933i4tLdXq1auVlZXlXhYVFaVBgwZpxYoVVdYvKSlRSUmJ+/tt27apY8eO/i4LwDHk5eWpZcuWAdm2r5kgkQtAsAUyEyRyAQhF3uSC3xuLX3/9VeXl5UpJSfFYnpKSoh9++KHK+tOnT9eUKVOqLB8/frycTqe/ywNQSUlJibKzs5WYmBiwffiaCdLRcwFA3QhkJkj+zYW8vDwlJSUFpE4AUlFRkdLS0rzKBb83Fr7KysrShAkT3N9XFO90OmksgDpit2kER8sFAHXDbpkgHT0XkpKSaCyAOuBNLvi9sWjatKmio6NVUFDgsbygoECpqalV1qeBAMKbr5kgkQtAuCMXgPDk9zOz4uLi1KNHD+Xk5LiXuVwu5eTkqF+/fv7eHQCbIxMAHIlcAMJTQKZCTZgwQVdffbV69uyp3r17Kzs7W/v379c111wTiN0BsDkyAcCRyAUg/ASksbjsssu0a9cu3X333crPz1fXrl31zjvvVDlJC0BkIBMAHIlcAMJPwO68XVtFRUVKTk7WxIkTmUsJBFhJSYlmzpypwsJCW5/8WJELAOqG3TNB+iMXQqFWIJT58l4L7N1vAAAAAEQEGgsAAAAAltFYAAAAALCMxgIAAACAZTQWAAAAACyjsQAAAABgGY0FAAAAAMtoLAAAAABYRmMBAAAAwDIaCwAAAACW0VgAAAAAsIzGAgAAAIBlNBYAAAAALKOxAAAAAGAZjQUAAAAAy2gsAAAAAFhGYwEAAADAMhoLAAAAAJbRWAAAAACwjMYCAAAAgGU0FgAAAAAso7EAAAAAYBmNBQAAAADLaCwAAAAAWEZjAQAAAMAyGgsAAAAAltFYAAAAALCMxgIAAACAZTQWAAAAACyjsQAAAABgGY0FAAAAAMtoLAAAAABYRmMBAAAAwDIaCwAAAACW0VgAAAAAsIzGAgAAAIBlNBYAAAAALKOxAAAAAGAZjQUAAAAAy2gsAAAAAFhGYwEAAADAMp8ai+nTp6tXr15KTExUs2bNNGTIEOXm5nqsc/DgQWVmZqpJkyZq0KCBhg4dqoKCAr8WDcA+yAUAlZEJQOTyqbFYvny5MjMz9fnnn2vZsmUqKyvTWWedpf3797vXufnmm/XWW2/ptdde0/Lly7V9+3Zdcsklfi8cgD2QCwAqIxOAyOUwxpjavnjXrl1q1qyZli9frtNOO02FhYU67rjjtGDBAl166aWSpB9++EEdOnTQihUr1Ldv3xq3WVRUpOTkZE2cOFFOp7O2pQHwQklJiWbOnKnCwkIlJSX5ZZuBzAUAdcPumSD9kQv+rBVAVb681yydY1FYWChJaty4sSRp9erVKisr06BBg9zrtG/fXunp6VqxYkW12ygpKVFRUZHHA0DoIhcAVOaPTJDIBSAU1LqxcLlcGj9+vPr3769OnTpJkvLz8xUXF6eGDRt6rJuSkqL8/PxqtzN9+nQlJye7H2lpabUtCUCQkQsAKvNXJkjkAhAKat1YZGZmat26dVq4cKGlArKyslRYWOh+5OXlWdoegOAhFwBU5q9MkMgFIBTE1OZFY8aM0dtvv62PPvpILVu2dC9PTU1VaWmp9u7d6/FJREFBgVJTU6vdltPp5FwKIAyQCwAq82cmSOQCEAp8GrEwxmjMmDFavHix3n//fWVkZHg836NHD8XGxionJ8e9LDc3V1u2bFG/fv38UzEAWyEXAFRGJgCRy6cRi8zMTC1YsED//e9/lZiY6J4LmZycrISEBCUnJ+u6667ThAkT1LhxYyUlJWns2LHq16+f11d5ABBayAUAlZEJQOTyqbGYNWuWJOmMM87wWD5v3jyNGjVKkvToo48qKipKQ4cOVUlJiQYPHqynn37aL8UCsB9yAUBlZAIQuSzdxyIQuI8FUHcCcR+LQOA+FkDdsnsmSNzHAqgrdXYfCwAAAACQaCwAAAAA+AGNBQAAAADLaCwAAAAAWEZjAQAAAMAyGgsAAAAAltFYAAAAALCMxgIAAACAZTQWAAAAACyLCXYBdhIfH69zzjlHXbt2PeZ6Dz/8sIqKiuqmKABB1bBhQ2VnZ+vqq68+5nppaWnaunVrHVUFAID9MGJRScOGDWtsKiQpPT098MUAsIXWrVvX2FRI0imnnFIH1QAAYF80FpW0atXKq/Xi4+MDXAkAuzj11FO9Wq9hw4aBLQQAAJujsajk3HPPDXYJAGzm8ccfD3YJAACEBBoLAAAAAJZx8nYtlJeXB7uEkNW3b1+dc845lrczefJkP1QD+E9ZWVmwSwhZ48aNU3Z2tuXtOBwO68UAAGqNEYtaKC0tDXYJIcsfTQVgR/v27Qt2CSHLH00FACD4GLGoBUYsvBcVFSWHw6H4+PgqJ7dOmTLF5+1VjFT06dNHRUVFKigoUElJicrKymj4EFT8/nkvOjpaUVFRatSokVq3bu237Y4dO1Zbt27V2rVrVVxcrP3792v//v1+2z6A4KjNaKQxJgCVoCY0FrVw8ODBYJcQEgYMGKC//OUvAdl2dSfav/rqq/ruu+8Csj+gJnv37g12CSFh4sSJmjFjRkC2Xd2J9sOHD9drr70WkP0BADwxFaoWiouLg11CSDhWUzF//ny/7+/000/3+zYBb+3YsSPYJYSEQDUVR3P33XfX6f4A+BdX7AwtjFjUgsvlCnYJthUbG6tJkyZ5LLv//vt16NAhv2y/uulTFdOjUlJSNGXKFK1fv16vvPKKX/YHeMtfv+PhqF69ekGbktSpUycZY7Ro0SINHTo0KDUA8E69evV04MABv2yruulTTI8KPEYs4FcdOnSosqyuG7GOHTvW6f4AHNvFF18c7BJ0ySWXBLsEADXg6nqhj8YCflX5RMyysjItXrw44I3FjBkztHr16oDuA0DtnXHGGcEuAYCN/f7777rqqqsCPvLbsGFDzZkzJ6D7iHRMhaqFcLwq1LGmGNX29dOmTfO5jur2WdPVo0pKSvT222/r7bff5v4WCJpwvCpUddMGfLk6C9MOAHijfv36Pr+mNvlUWFioG264QTfccAP5FCCMWNRCOP4BAcAa7mMBAIh0jFjUAidvHxYbG6sTTjhB6enp7mW+3JuiVatWGjVqVLXPPf/88+7nJk+erJ9//lmvv/6615f6bdOmjYqKirRnz56wHGGC/TA3+LCEhASdffbZ6t+/v9+3PXDgQL3//vu1fv2gQYO0detW/fzzz/x7AUHmy+jnaaedpuXLl9e4njFG7777rkaMGKE9e/ZYKQ+1RGNRC/yhetiRV3/y1dGaCunwcGVlbdu21cSJE71uXK6++mpJ0po1a7Ro0aJa1wh4iz9UD/v9998Dtu28vDxLr1+2bJkk6aWXXtKVV17pj5IA1AFvmooKZ511lnbv3l2rm+rBOqZC+Wjp0qVh2Vh8+umnHt8H+2Zf/tp/ly5d/LId4FhuvfXWsJwi+dBDD3l8/8svvwSpksM2b97sl+1cccUVftkOAMCTw9js7JWioiIlJydr4sSJcjqddbrvmj4N58Tgw478OZWVlXl9ovapp56qgQMHeiyr6efaq1cvnX/++ces4UiZmZlq2rSpV9uPZCUlJZo5c6YKCwuVlJQU7HKOqiIXgqGmiORTscP8/b+Smn6uN954o55++umAbT/S2T0TpD9yIRRqxWEHDhxQvXr1vFp30qRJuu+++yzvs6b3+vfff6/27dtb3k848+W9xogFfBIdHV1l2f/93/95/fojmwpvbNq0yefXAKg7cXFxdb7PDz74oM73CcCaf/zjH16v64+mAnWPcyzgk6ioP3rRBx98UKWlpbW67vTnn3+upUuXevUp56+//qp77rlHDoeD0QfAhmJi/PO/kscee0y33HKLVxfI+OGHHxQdHa2oqCjObwFsrlmzZtq3b5/f7qoN+6KxkG9XMvKGw+HQPffc49Nr7P4Hc3U/o5pO0jzWMRUUFPh0dS1jDNecRp3y9+9bVFSUz+dn2X26jr9/Rt9++61PPyOXy8VV+oAQsGvXrmM+z//fwwdToQKguulCNbH7HxD+lpubG+wSgDoVGxvr82siLRfefPPNYJcAALCAEQs/OvXUUzVo0KBavfayyy7Ttm3b9M0336i4uNjPldWO0+nU2LFjlZiY6F5W0+iO0+nUHXfc4bFs5syZfr8EZcVoyLvvvqsVK1b4dduAP91xxx2aPn16rV67aNEirVq1Ss8//7x27Njh58pqJykpST/88IOaN29uaTtNmzbVb7/95qeqANhNTR+MJCUlVbm0fCBUjIbceuutevjhhwO+v0gX8SMW/vxEsLZNhSR16NBBgwYN0q233uq3eqy65pprPJoKb1x++eVVlgVy/vNZZ50VsG0jcvkzF2rbVEjSkCFDNG3aNG3fvt1v9Vi1fPlyy02FFNj7XQCwP18u/OIPR14+G4ER8Y0Fju7IPx68GUmpfBfuCv5sLLKzs/Xdd9+F5b1EgFDQtWtXv2zHnydxtm3bVq+//nqtLiQBwP+8+TBkwIABdVAJ6hpToSxKT0/XddddF+wyAq429/gIxAnpe/bs0auvvlqrE+SButK/f3998sknwS7DlgJx3sjGjRs1bNiwWp0gD8C/anqPc6J2eGPEwqJIaCoA+IamAgAQiRixsKEGDRqotLRUpaWldbrfqKgoORwO1atXT8cdd1yN6zscDjVo0MDjLpp2v2wuEKpSUlK0b98+7d+/v073W3GviKZNm+qkk06q1TYi7epWADxFR0crJSVFTZs2DXYpCDAaCxu67bbbJEkffvhhnd1dtmfPnrrgggt8es3dd98doGoAHCk/P1/S4WmJdTUN8IYbbtDs2bPrZF8AwhfnP0WOiJ8KZedP0s4444w629exmoo33nijzurwlp3/3RD6Kt9h3m7qclQw1JoKcgEIrmuuuSbYJSDIGLGopXr16tV6SG/dunXq1KmTnyvyj3nz5mnLli0+v44pUMDhezO0b9++Vq995ZVXdNlll/m5ouDiD30gfJ166qmcT4YqLH0sN2PGDDkcDo0fP9697ODBg8rMzFSTJk3UoEEDDR06VAUFBVbrtJ2zzz671idur1mzxs/VBFdeXl6wS4BNRHImSNKjjz6qjz/+uFavffHFF/1cTXBx40pUiPRcACJJrRuLL774Qs8884xOPvlkj+U333yz3nrrLb322mtavny5tm/frksuucRyoXbTpUsXn9ZftmyZHn74Yd13333asGGD5s6dq/feey9A1dWtd999N9glwAYiPRMk6YorrvBp/TvuuENpaWmKj4/XkiVL1K9fP915550Bqq5uVZwrhshGLgCRpVZTofbt26eRI0dq7ty5mjp1qnt5YWGhnn32WS1YsEADBw6UdHhqTYcOHfT555+rb9++/qk6BBUUFKioqMj9/datW7V161ZLd+sOhujoaE2aNMlj2cGDB+ts/zXdTwPBQSbUztq1a7V161b3959//rk+//xzTZs2LYhV+cfevXvrbF9cF9+e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Dh0yBw4cMC6XK9il+NV//vMfU79+fSPJZGZm1rh+cXGxkWT69u1rpk6daubMmWOuueYaExUVZc444wyPn88TTzxhEhISzF//+lfz5JNPmuzsbNO9e3cjyTz33HMe2+3Ro4fJyMgwt99+u5k7d67JysoyiYmJJiUlxezYscNj3dNPP920bNnSvPjiix6PnJwcn4//f//7n3E4HObPf/6zmTNnjhk7dqyJiooyf//7333eVoXy8nLTtWtX9891165dtd4W7ItMOIxMqBmZEDnIhcPIhZqFYy7QWES4AwcOmNatW5t7773X67AoKSkxn376aZXlU6ZMMZLMsmXL3MvWrVtX5Y1y8OBB0759e9OyZUuP5cuXLzfl5eVVlkky//znPz2Wn3766eakk06qsVZvdOzY0XTp0sWUlZW5l/3zn/80DofDfP/997Xa5qxZs0yTJk3MuHHjwiYsEBnIBDIBOBK5QC54i6lQPjhy3mTr1q11/vnn68MPP1TPnj2VkJCgzp0768MPP5QkLVq0SJ07d1Z8fLx69Oihr7/+2mN7a9eu1ahRo9SmTRvFx8crNTVV1157rX777bcq+67YR3x8vNq2batnnnlG99xzjxwOR5V1X3rpJfXo0UMJCQlq3LixRowYoby8vGqP6YEHHpDL5dKtt97q9c8hLi5Op5xySpXlF198sSTp+++/dy876aST1LRpU4/1nE6nzj33XG3dulXFxcXu5aeddpqiojx/JU877TQ1btzYY5uVHTp0SPv27fO69iOtX79e69ev1+jRoxUTE+Ne/o9//EPGGL3++us+b3P37t2aNGmS7r33XjVs2LDWtcH+yITDyIRjIxMiC7lwGLlwbOGaCzQWFv3000+6/PLLdcEFF2j69Onas2ePLrjgAs2fP18333yzrrjiCk2ZMkU///yzhg8fLpfL5X7tsmXLtHHjRl1zzTV64oknNGLECC1cuFDnnnuujDHu9b7++mudffbZ+u233zRlyhRdd911uvfee/XGG29Uqef+++/XVVddpXbt2umRRx7R+PHjlZOTo9NOO0179+71WHfLli2aMWOGZs6cqYSEBMs/i/z8fEmqEg5HW7devXqqV6/eMdfbt2+f9u3bV+02f/zxR9WvX1+JiYlKTU3VXXfdpbKyMp9qrgjwnj17eixv0aKFWrZsWSXgvXHXXXcpNTVVN9xwg8+vRegjE/5AJhxGJoBc+AO5cFjY5kIwh0tCzbx584wks2nTJmOMMa1atTKSzGeffeZeZ+nSpUaSSUhIML/88ot7+TPPPGMkmQ8++MC97Pfff6+yj5dfftlIMh999JF72QUXXGDq1atntm3b5l62YcMGExMTYyr/E27evNlER0eb+++/32Ob3377rYmJiamy/NJLLzWnnHKK+3t5Obx5NIMGDTJJSUlmz549x1xvw4YNJj4+3lx55ZU1bvO+++4zkqrMh7z22mvNPffcY/7zn/+YF154wVx44YVGkhk+fLhPNT/44INGktmyZUuV53r16mX69u3r0/bWrFljoqOjzdKlS40xxkyePDlshjdRFZlwbGQCmRCJyIVjIxfCOxdoLHxQXVh07NjRY529e/caSea8887zWP7NN98YSebZZ5+tdtsHDhwwu3btMps2bTKSTHZ2tjHm8ElgCQkJ5vLLL6/ymgsuuMAjLB555BHjcDjMhg0bzK5duzweHTp0MIMGDXKv+/777xuHw2FWrVrlXmYlLO6//34jyTz99NPHXG///v2ma9euplGjRh7hV53ly5ebmJgYrwPg+uuvN5LMihUrvK67Yr5oQUFBledOPfVU06VLF6+3Zczh+Zznn3+++/twCgtURSYcHZlwGJkQeciFoyMXDgvnXPhjohhqJT093eP75ORkSVJaWlq1y/fs2eNetnv3bk2ZMkULFy7Uzp07PdYvLCyUJO3cuVMHDhzQCSecUGXfRy7bsGGDjDFq165dtbXGxsZKOjzX8KabbtKVV16pXr161XiMNXnllVc0adIkXXfddbrxxhuPul55eblGjBih9evXa8mSJWrRosVR1/3hhx908cUXq1OnTvrXv/7lVR233HKL5s6dq/fee099+/b16jUVw7olJSVVnjt48KBPw76vvPKKPvvsM61bt87r1yD8kAlkQgUyARXIBXKhQrjnAo2FRdHR0T4tN5XmQw4fPlyfffaZbrvtNnXt2lUNGjSQy+XS2Wef7TG/0lsul0sOh0NLliypdv8NGjSQJL3wwgvKzc3VM888U+UGPsXFxdq8ebOaNWtW45xG6fDcz6uuukrnnXeeZs+efcx1r7/+er399tuaP3++Bg4ceNT18vLydNZZZyk5OVn/+9//lJiYWGMd0h8BvXv3bq/Wl6TmzZtLknbs2FEl4Hfs2KHevXt7va3bbrtNw4YNU1xcnPvnWjFXNS8vT6WlpccMSIQHMoFMqEAmoAK5QC5UCPdcoLEIkj179ignJ0dTpkzR3Xff7V6+YcMGj/WaNWum+Ph4/fTTT1W2ceSytm3byhijjIwMnXjiiUfd95YtW1RWVqb+/ftXee6FF17QCy+8oMWLF2vIkCHHPIaVK1fq4osvVs+ePfXqq696XCnhSLfddpvmzZun7Oxs/fWvfz3qer/99pvOOusslZSUKCcnx/1m9sbGjRslSccdd5zXr+natask6csvv/QIhu3bt2vr1q0aPXq019vKy8vTggULtGDBgirPde/eXV26dNE333zj9fYQWciE6pEJiGTkQvXIBfuisQiSik8JKn8qIUnZ2dlV1hs0aJDeeOMNbd++3d3F/vTTT1qyZInHupdccomysrI0ZcoUvfTSSx6XlzPGaPfu3WrSpIlGjBjhfpNUdvHFF+vcc8/V9ddfrz59+hyz/u+//17nnXeeWrdurbfffvuYw4APPvigHnroId15550aN27cUdfbv3+/zj33XG3btk0ffPDBUYdpi4qK5HQ65XQ6PY5v6tSpkqTBgwcfs/bKTjrpJLVv315z5szRDTfc4P53mTVrlhwOhy699FKvt7V48eIqyxYuXKhXXnlFL7zwglq2bOn1thB5yISqyAREOnKhKnLB3mgsgiQpKUmnnXaaHnjgAZWVlen444/Xu+++q02bNlVZ95577tG7776r/v3768Ybb1R5ebmefPJJderUyaOrbdu2raZOnaqsrCxt3rxZQ4YMUWJiojZt2qTFixdr9OjRuvXWW9W+fXu1b9++2royMjKqfPpwxhlnaPny5e5gKy4u1uDBg7Vnzx7ddttt+r//+z+P9du2bat+/fpJOvwGuv3229WuXTt16NBBL730kse6f/nLX5SSkiJJGjlypFatWqVrr71W33//vcf1qBs0aOCu66uvvtJf//pX/fWvf9UJJ5ygAwcOaPHixfr00081evRode/eveZ/gEoefPBBXXjhhTrrrLM0YsQIrVu3Tk8++aT+9re/qUOHDl5vp7pPbSr+fc455xyvLq2HyEUmHEYmAH8gFw4jF0JInZ4qHuKqu9LDkVd0MKb6KyZUXMHhwQcfdC/bunWrufjii03Dhg1NcnKyGTZsmNm+fbuRZCZPnuzx+pycHNOtWzcTFxdn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6KF+/frcaRt1ghGLELF///4qyzp06BCESgDYxa5du4JdAoAQMHTo0GCXgAhhqbGYMWOGHA6Hxo8f71528OBBZWZmqkmTJmrQoIGGDh2qgoICq3VGvAMHDuixxx7zmBqVkZERxIqAqsiEurV79261a9eOqVGwNXIh+M4888xgl4AIUevG4osvvtAzzzyjk08+2WP5zTffrLfeekuvvfaali9fru3bt+uSSy6xXCgO/xGxdu1a9/eclAU7IROC46efftL8+fODXQZQLXLBHgJ5FSqgslr9pu3bt08jR47U3Llz1ahRI/fywsJCPfvss3rkkUc0cOBA9ejRQ/PmzdNnn32mzz//3G9FA7AXMgHAkcgFIPLUqrHIzMzUeeedp0GDBnksX716tcrKyjyWt2/fXunp6VqxYkW12yopKVFRUZHHIxR06dKFO0MD/58/M0EK3VwA8Ady4bCrr77afRI1EO58virUwoUL9dVXX+mLL76o8lx+fr7i4uLUsGFDj+UpKSnKz8+vdnvTp08PyfsyDBkyJNglALbg70yQQjcXABxGLvzh+eefD3YJQJ3xacQiLy9P48aN0/z58xUfH++XArKyslRYWOh+5OXl+WW7dW3WrFnBLgGoc4HIBCl8cqFbt27BLgGoc+QCELl8GrFYvXq1du7cqe7du7uXlZeX66OPPtKTTz6ppUuXqrS0VHv37vX4JKKgoECpqanVbtPpdMrpdNauehtJSEiwvA1fP4k5cOCA5X0CVgQiE6TwyYXK88priykUCDXkgv389ttvwS4BEcKnEYszzzxT3377rb755hv3o2fPnho5cqT769jYWOXk5Lhfk5ubqy1btqhfv35+L95ORo0aVef7/O677+p8n0BlZMKxvf/++8EuAahz5IL9vPLKK8EuARHCpxGLxMREderUyWNZ/fr11aRJE/fy6667ThMmTFDjxo2VlJSksWPHql+/furbt6//qraBqVOnyul06rbbbvP7th966KFjPm+MUWlpqQ4dOuT3fQO+IBMAHIlc8OR0OpWUlBSQG1oea4RHklwul/bt28cMB9QZn0/ersmjjz6qqKgoDR06VCUlJRo8eLCefvppf+8m6MrLy/X77797LPN2KtP69evVsWPHoz5f3V22gVAVKZlwNN5OZVq0aBHX8UfEiKRcKC0t1a+//hqQbXNTQdiN5cbiww8/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\n"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "num_show = 5\n",
    "\n",
    "def vis_graph2(X,y,name_list,n = 10, opacity = 0.5): # 标注区域透明度\n",
    "\n",
    "    fig, axes = plt.subplots(nrows=n, ncols=3, sharex=True, figsize=(8,12*n/5))\n",
    "    fig.dpi = 100\n",
    "\n",
    "    for index, (img, mask,name) in enumerate(zip(X, y,name_list)):\n",
    "        axes[ index,0].imshow(img, cmap='gray', vmin=0, vmax=1)\n",
    "        axes[ index,0].imshow(mask*10, alpha=opacity, cmap='gray', vmin=0, vmax=1)\n",
    "        axes[ index,0].set_title(f\"image{index},{name}\")\n",
    "        axes[ index,1].imshow(img, cmap='gray', vmin=0, vmax=1)\n",
    "        axes[ index,1].set_title(f\"image{index},{name}\")\n",
    "        axes[ index,2].imshow(mask*10, cmap='gray', vmin=0, vmax=1)\n",
    "        axes[ index,2].set_title(f\"image{index},{name}\")\n",
    "\n",
    "    fig.suptitle('digtis+mask digits masks', fontsize=20)\n",
    "    plt.tight_layout()\n",
    "    plt.show()\n",
    "\n",
    "vis_graph2(X[:num_show,:,:],y[:num_show,:,:],name_list[:num_show],n=num_show,)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "outputs": [],
   "source": [
    "train_ratio = 0.8\n",
    "test_ratio = 1 - train_ratio\n",
    "all_file_num = len(X)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据集图像总数 922\n",
      "训练集划分比例 0.8\n",
      "训练集图像个数 737\n",
      "测试集图像个数 185\n"
     ]
    }
   ],
   "source": [
    "train_X, train_y = X[:int(all_file_num*train_ratio)], y[:int(all_file_num*train_ratio)]\n",
    "test_X, test_y  = X[int(all_file_num*train_ratio):], y[int(all_file_num*train_ratio):]\n",
    "train_name_list,test_name_list = name_list[:int(all_file_num*train_ratio)], name_list[int(all_file_num*train_ratio):]\n",
    "\n",
    "print('数据集图像总数', all_file_num)\n",
    "print('训练集划分比例', train_ratio)\n",
    "print('训练集图像个数', len(train_X))\n",
    "print('测试集图像个数', len(test_X))"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "outputs": [
    {
     "data": {
      "text/plain": "('4973_0_5', 922)"
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "name_list[0],len(name_list)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "outputs": [
    {
     "data": {
      "text/plain": "array(['2181_0_2', '41_0_7', '3894_0_6', '3108_0_1', '436_0_3'],\n      dtype='<U10')"
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_name_list[:5]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "outputs": [
    {
     "data": {
      "text/plain": "array(['1386_0_3', '3919_0_1', '503_0_1', '2137_0_1', '1042_0_0'],\n      dtype='<U10')"
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_name_list[:5]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 生成两个txt划分文件"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "outputs": [],
   "source": [
    "with open('data/m2nist/train.txt', 'w') as f:\n",
    "    f.writelines(line + '\\n' for line in train_name_list)\n",
    "with open('data/m2nist/test.txt', 'w') as f:\n",
    "    f.writelines(line + '\\n' for line in test_name_list)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 将数据转为图片保存，作为mmseg的标准形式"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "mask 图片需要进行像素转化，转到0-255"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "outputs": [
    {
     "data": {
      "text/plain": "(0.0, 255.0, 0.0, 10.0)"
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array(train_X[1]).min(),np.array(train_X[1]).max(),np.array(train_y[1]).min(),np.array(train_y[1]).max()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "outputs": [
    {
     "data": {
      "text/plain": "(array([ 0.,  7., 10.], dtype=float32), 156, 179, 5041)"
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.unique(train_y[1]),np.sum(train_y[1]==0),np.sum(train_y[1]==7), np.sum(train_y[1]==10)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.  2. 10.] 221 210 4945\n",
      "[ 0.  7. 10.] 156 179 5041\n",
      "[ 0.  6. 10.] 217 192 4967\n",
      "[ 0.  1. 10.] 135 111 5130\n",
      "[ 0.  3. 10.] 256 158 4962\n",
      "[ 0.  8. 10.] 195 238 4943\n",
      "[ 0.  5. 10.] 143 335 4898\n",
      "[ 0.  2.  5. 10.] 165 366 4845\n",
      "[ 0.  3. 10.] 211 185 4980\n",
      "[ 0. 10.] 397 0 4979\n"
     ]
    }
   ],
   "source": [
    "for i in range(10):\n",
    "    print(np.unique(train_y[i]),np.sum(train_y[i]==0),64*84-np.sum(train_y[i]==0)-np.sum(train_y[i]==10), np.sum(train_y[i]==10))"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "outputs": [],
   "source": [
    "import cv2\n",
    "from PIL import Image\n",
    "\n",
    "def save_img(image,path):\n",
    "    r, b = cv2.threshold(image, 2, 255, cv2.THRESH_BINARY)\n",
    "    # plt.imshow(b)\n",
    "    # plt.show()\n",
    "    Image.fromarray(b.astype(np.uint8)).save(path)\n",
    "\n",
    "\n",
    "train_mask_path = 'data/m2nist/masks/train/3801_0_1.png'\n",
    "save_img(train_y[2],train_mask_path)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "outputs": [],
   "source": [
    "import cv2\n",
    "import os\n",
    "from PIL import Image\n",
    "\n",
    "data_dir = 'data/m2nist'\n",
    "PATH_IMAGE = f'{data_dir}/images'\n",
    "PATH_MASKS = f'{data_dir}/masks'\n",
    "\n",
    "# #Shuffle\n",
    "# X,y = shuffle(X,y)\n",
    "#\n",
    "# # Normalize\n",
    "# X -= 127.0\n",
    "# X /= 127.0\n",
    "\n",
    "for i in range(len(train_X)):\n",
    "    train_file_name = train_name_list[i]+'.png'\n",
    "    train_img_path = os.path.join(PATH_IMAGE, 'train',train_file_name)\n",
    "    train_mask_path = os.path.join(PATH_MASKS, 'train', train_file_name)\n",
    "    save_img(train_X[i],train_img_path)\n",
    "    save_img(train_y[i],train_mask_path)\n",
    "\n",
    "for i in range(len(test_X)):\n",
    "    test_file_name = test_name_list[i]+'.png'\n",
    "    test_img_path = os.path.join(PATH_IMAGE, 'test',test_file_name)\n",
    "    test_mask_path = os.path.join(PATH_MASKS, 'test', test_file_name)\n",
    "    save_img(test_X[i],test_img_path)\n",
    "    save_img(test_y[i],test_mask_path)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "outputs": [
    {
     "data": {
      "text/plain": "((737, 64, 84), (737,))"
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_X.shape,train_name_list.shape"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001B[01;34mdata/m2nist\u001B[0m\r\n",
      "├── \u001B[00mbbox.txt\u001B[0m\r\n",
      "├── \u001B[00mcombined.npy\u001B[0m\r\n",
      "├── \u001B[01;34mimages\u001B[0m\r\n",
      "│   ├── \u001B[01;34mtest\u001B[0m\r\n",
      "│   │   ├── \u001B[00m10_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1029_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1031_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1042_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1047_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1050_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m105_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1057_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1067_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1075_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1083_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1086_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1097_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1100_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1109_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1113_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1143_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1148_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1149_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m115_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1152_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m116_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1165_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1177_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1179_0_5_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1198_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1199_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1212_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1218_0_5_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1220_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1224_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1225_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1239_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1242_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1248_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m125_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1259_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1261_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1275_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1277_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1280_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1284_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1292_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1297_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1300_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m130_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1304_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1308_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1313_0_2_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1315_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1323_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1324_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1328_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1330_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1332_0_4_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1341_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1342_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1346_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1348_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1349_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m135_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1356_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1359_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1361_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1363_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1369_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1372_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1373_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1374_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1386_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1387_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1390_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1392_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1396_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1397_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1404_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1410_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m141_0_4_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1416_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1417_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1418_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1419_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1433_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1439_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1451_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1453_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1457_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1458_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1465_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1478_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1480_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1487_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1489_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1491_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m150_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1501_0_2_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m15_0_1_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1507_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m151_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m152_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1528_0_1_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1530_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1531_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1532_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1533_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1534_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1537_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1539_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1546_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1547_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1549_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1554_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1555_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1560_0_3_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m156_0_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1563_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1564_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1567_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1569_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1576_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1578_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1585_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1587_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1608_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m161_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1612_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1613_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1617_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1619_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1630_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1633_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1634_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1646_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1647_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1650_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1654_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m166_0_4_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1675_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1685_0_3_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1689_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1690_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1693_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1724_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1725_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1734_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1755_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1760_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1775_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1786_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1788_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1791_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1796_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1799_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1800_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1801_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1808_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1818_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1840_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1847_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1857_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1858_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1864_0_1_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1874_0_2_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1879_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m189_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1899_0_1_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1906_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m19_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1918_0_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1921_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1930_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1937_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1938_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1939_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1943_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1944_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1947_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1948_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1950_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1953_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1965_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1966_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1971_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1973_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1981_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1984_0_5_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1987_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1989_0_7_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2000_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m20_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2009_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2010_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2013_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2015_0_5_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2022_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2025_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m203_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2034_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2042_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2043_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2044_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2048_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2053_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2054_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2058_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2067_0_5_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2076_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m208_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2085_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2090_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m210_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2101_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2111_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2114_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2119_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2120_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2137_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2138_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2141_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2144_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2147_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2155_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2158_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2166_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2169_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m217_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2178_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2181_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2188_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2196_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2201_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2207_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2210_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m222_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2225_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2227_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2237_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2245_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2249_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2250_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2258_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2264_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2272_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2274_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2281_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2285_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2290_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2295_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2296_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2302_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2304_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2305_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2313_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2319_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2330_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2331_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2344_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2355_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2360_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m237_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2375_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2379_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2381_0_3_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2383_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2390_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2396_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2418_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2423_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2426_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2433_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2435_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2436_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2467_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2468_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m247_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2477_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2480_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2482_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2492_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2494_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2506_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2515_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2518_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2524_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2536_0_3_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2544_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2547_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2567_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2568_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2569_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2577_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2578_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2587_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2589_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2592_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2593_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2601_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2602_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2607_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2609_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2616_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2622_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2624_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2634_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2646_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m265_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2668_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2669_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m267_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2680_0_4_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2682_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2686_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m270_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2702_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2710_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2717_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2726_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2727_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2728_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2748_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2763_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2769_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2779_0_4_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2785_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2786_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2787_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2797_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m280_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m28_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2805_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2811_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2812_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2829_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2830_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2846_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2857_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2861_0_6_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2867_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2868_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m288_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2881_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2882_0_1_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2884_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2885_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2897_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m29_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m292_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2924_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2926_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2931_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2934_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2935_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2939_0_4_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2943_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m296_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2964_0_4_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2965_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2966_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2968_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2978_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2994_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2997_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2998_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2999_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3005_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3008_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3013_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3030_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3036_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3038_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3052_0_7_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3058_0_1_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3062_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m307_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3073_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3074_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3085_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3086_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3090_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m309_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3092_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3108_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3114_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3120_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3125_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3128_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3131_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3135_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3138_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3139_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3142_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3148_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3149_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3163_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3164_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3165_0_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3169_0_2_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3175_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3177_0_1_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3179_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m318_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3185_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3187_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3188_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3191_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3192_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3193_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3203_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3211_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3223_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3228_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3240_0_3_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3248_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3250_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3254_0_5_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3276_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3281_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3284_0_3_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3286_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3289_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3293_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3294_0_4_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3298_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3300_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3304_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3311_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3315_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3317_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3330_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3334_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3339_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3343_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3345_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3347_0_1_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3348_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3353_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m336_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3378_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3382_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m339_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3396_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3407_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3417_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m344_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3445_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3454_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3456_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3458_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3464_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3465_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3469_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3481_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3483_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3492_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3495_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3503_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3505_0_7_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3507_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3510_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3517_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3518_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3527_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3528_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3534_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3538_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3543_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3546_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3557_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3561_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3567_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m357_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3571_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3577_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m359_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3601_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3602_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3614_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3621_0_8_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3631_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3632_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3635_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3638_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3640_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3645_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3650_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3661_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3666_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3668_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3674_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3687_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m370_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3703_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3706_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3709_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3713_0_1_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3733_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3737_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3740_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3742_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3745_0_3_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3748_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3754_0_7_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3762_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m378_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3781_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3785_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3789_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3791_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3794_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3801_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3811_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3815_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3823_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3832_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3836_0_6_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3841_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3845_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3848_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3849_0_3_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3862_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3867_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3875_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3877_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3891_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3892_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3893_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3894_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3898_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3900_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3913_0_8_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3919_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m393_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3945_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3948_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3952_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3954_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3959_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3968_0_4_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3977_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3978_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3979_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3984_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3985_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3990_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3998_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4000_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4004_0_4_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4013_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4018_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4019_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4032_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4033_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4048_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4058_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4060_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4064_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4077_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4088_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4089_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4095_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4098_0_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4101_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4102_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m41_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m411_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4115_0_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4118_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4125_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4129_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4130_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4134_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4135_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4142_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4143_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m415_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4159_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4160_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4162_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4166_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4171_0_2_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4177_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4189_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4190_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4202_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4203_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4205_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4207_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4208_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m42_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4213_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4221_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4224_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4225_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4228_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4229_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m423_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4238_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m424_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4248_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4252_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4255_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4264_0_7_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4267_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4273_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4274_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4280_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4292_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4299_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4301_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4309_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4310_0_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4312_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4315_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4320_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4323_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4324_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4326_0_1_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4327_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4330_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m433_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4331_0_2_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4333_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4338_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4342_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4351_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4353_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4356_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m436_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4365_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m437_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4371_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4377_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4385_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4388_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4392_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4396_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4407_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4412_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4413_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4415_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m442_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4432_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4447_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4449_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m445_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4451_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4456_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4463_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4465_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4466_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4481_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4482_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4487_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m449_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4496_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m450_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4501_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m45_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4512_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4515_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4528_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m453_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4531_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4532_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4557_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4561_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4570_0_2_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m457_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4583_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4585_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4590_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m460_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4603_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4611_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4613_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4622_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4631_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4638_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4641_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4646_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4650_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4654_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4659_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4669_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4679_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4681_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4694_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4699_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4703_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4721_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4722_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4723_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4726_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4730_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4737_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4739_0_5_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m475_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4751_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4761_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4763_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4768_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4782_0_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4784_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4785_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4786_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4808_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4814_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4818_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m482_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4822_0_5_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4844_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4860_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4862_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4865_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4867_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4869_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4874_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4883_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4888_0_2_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4894_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4900_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4901_0_1_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4903_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4904_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4908_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4912_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4913_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4917_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4918_0_3_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4919_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4920_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4926_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4927_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4934_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m494_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4946_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4957_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4968_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4970_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4972_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4973_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4978_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4979_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m498_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4985_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4987_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4992_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4994_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m503_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m51_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m537_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m538_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m554_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m563_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m564_0_5_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m565_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m566_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m596_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m599_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m607_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m612_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m631_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m641_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m648_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m66_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m670_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m673_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m675_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m676_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m679_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m681_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m683_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m685_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m687_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m692_0_6_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m697_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m698_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m7_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m722_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m731_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m735_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m736_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m753_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m755_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m757_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m767_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m770_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m781_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m783_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m791_0_7_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m792_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m796_0_7_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m803_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m82_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m821_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m823_0_1_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m826_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m83_0_3_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m831_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m850_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m851_0_4_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m857_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m860_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m861_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m862_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m866_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m87_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m880_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m888_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m889_0_6_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m914_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m918_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m924_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m926_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m927_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m93_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m931_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m935_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m942_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m95_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m952_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m964_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m976_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m982_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m991_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m993_0_2.png\u001B[0m\r\n",
      "│   │   └── \u001B[00m994_0_2.png\u001B[0m\r\n",
      "│   └── \u001B[01;34mtrain\u001B[0m\r\n",
      "│       ├── \u001B[00m10_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1006_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1023_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1029_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1031_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1042_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1047_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1050_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m105_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1057_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1067_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1075_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1082_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1083_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1084_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1086_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1097_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1100_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1109_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1113_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1143_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1148_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1149_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m115_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1152_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1158_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m116_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1165_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1166_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1177_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1179_0_5_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1198_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1199_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1212_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1218_0_5_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1220_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1222_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1224_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1225_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1235_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1239_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1240_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1242_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1248_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m125_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1259_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1261_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1264_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1275_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1277_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1280_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1284_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1287_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1292_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1297_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1300_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m130_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1304_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1308_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1313_0_2_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1315_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1323_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1324_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1328_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1330_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1332_0_4_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1341_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1342_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1346_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1348_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1349_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m135_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1356_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1359_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1361_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1363_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1369_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1372_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1373_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1374_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1386_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1387_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1390_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m139_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1392_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1396_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1397_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1404_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1410_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m141_0_4_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1413_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1416_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1417_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1418_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1419_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1433_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1439_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1440_0_2_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1451_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1453_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1457_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1458_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1465_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1478_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1480_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1487_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1489_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1491_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m150_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1501_0_2_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m15_0_1_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1507_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m151_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m152_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1528_0_1_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1530_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1531_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1532_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1533_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1534_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1537_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1539_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1546_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1547_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1549_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1554_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1555_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1560_0_3_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m156_0_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1563_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1564_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1567_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1569_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1574_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1576_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1578_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1585_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1587_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1608_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m161_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1612_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1613_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1617_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1619_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1630_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1633_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1634_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1636_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1646_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1647_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1650_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1654_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1659_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m166_0_4_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1675_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1685_0_3_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1689_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1690_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1693_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1705_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1724_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1725_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1734_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1743_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1755_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1760_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1775_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1786_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1788_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1791_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1796_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1799_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1800_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1801_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1803_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1808_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1809_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1818_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1840_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1847_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m185_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1857_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1858_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1864_0_1_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1874_0_2_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1879_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m189_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1899_0_1_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1906_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m19_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1918_0_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1921_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1930_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1937_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1938_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1939_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1943_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1944_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1947_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1948_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1950_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1953_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1962_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1965_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1966_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1971_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1973_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1981_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1984_0_5_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1987_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1989_0_7_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2000_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2004_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m20_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2009_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2010_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2013_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2015_0_5_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2022_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2025_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m203_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2034_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2036_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2042_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2043_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2044_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2048_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2053_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2054_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2058_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2067_0_5_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2076_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m208_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2085_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2090_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m210_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2101_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2110_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2111_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2114_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2119_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2120_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2137_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2138_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2141_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2144_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2147_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2155_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2158_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2166_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2167_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2169_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m217_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2178_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2181_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2188_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2196_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2201_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2207_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2210_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m222_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2225_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2227_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2237_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2245_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2249_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2250_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2258_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2264_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2272_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2274_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2281_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2285_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2290_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2295_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2296_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2302_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2304_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2305_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2309_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2313_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2316_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2319_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2330_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2331_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2344_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2355_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2360_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m237_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2375_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2379_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2381_0_3_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2383_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2390_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2396_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2418_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2423_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2426_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2433_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2435_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2436_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2437_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2467_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2468_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m247_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2477_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2480_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2482_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2486_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2492_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2494_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2506_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2515_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2518_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2524_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2534_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2536_0_3_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2544_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2547_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2567_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2568_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2569_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2577_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2578_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2587_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2589_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2592_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2593_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2601_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2602_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2607_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2609_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2616_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2622_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2624_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2634_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2642_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2645_0_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2646_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m265_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2658_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2668_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2669_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m267_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2675_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2680_0_4_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2682_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2686_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2692_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2695_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m270_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2702_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2710_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2717_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m272_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2726_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2727_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2728_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2748_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2752_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2763_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2769_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2772_0_8_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2777_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2779_0_4_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2785_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2786_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2787_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2797_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m280_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m28_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2805_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2811_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2812_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2829_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2830_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2846_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2857_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2861_0_6_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2867_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2868_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m288_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2881_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2882_0_1_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2884_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2885_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2897_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m29_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2905_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m292_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2924_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2926_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2931_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2934_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2935_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2939_0_4_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2943_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2954_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m296_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2964_0_4_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2965_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2966_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2968_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2974_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2978_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2994_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2997_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2998_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2999_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3005_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3008_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3013_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3030_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3036_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3038_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3052_0_7_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3053_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3058_0_1_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3062_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m307_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3073_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3074_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m308_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3085_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3086_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3090_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m309_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3092_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3108_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3114_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3120_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3125_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3128_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3131_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3135_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3138_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3139_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3142_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3148_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3149_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3163_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3164_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3165_0_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3166_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3169_0_2_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3175_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3177_0_1_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3179_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m318_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3185_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3187_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3188_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3191_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3192_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3193_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3203_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3211_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3223_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3228_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3240_0_3_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3248_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3250_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3254_0_5_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3276_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3281_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3284_0_3_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3286_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3289_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m329_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3293_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3294_0_4_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3298_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3300_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3304_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3311_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3315_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3317_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3328_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3330_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3334_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3339_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3343_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3345_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3347_0_1_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3348_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3353_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m336_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3378_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3382_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m339_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3396_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3400_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3407_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3417_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m344_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3445_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3446_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3450_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3454_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3456_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3458_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3464_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3465_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3469_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3470_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3481_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3483_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3492_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3495_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3498_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3503_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3505_0_7_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3507_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3508_0_5_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3510_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3517_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3518_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3522_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3527_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3528_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3534_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3538_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m354_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3543_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3546_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3556_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3557_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3561_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3567_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m357_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3571_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3577_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m359_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3601_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3602_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3614_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3621_0_8_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3631_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3632_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3635_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3638_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3640_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3645_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3650_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3661_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3665_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3666_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3668_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3674_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3687_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m370_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3703_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3706_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3709_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3713_0_1_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3733_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3737_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3740_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3742_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3745_0_3_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3748_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3754_0_7_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3762_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3775_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m378_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3781_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3785_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3789_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3790_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3791_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3794_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3801_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m381_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3811_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3815_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3823_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3832_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3836_0_6_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3841_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3845_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3847_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3848_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3849_0_3_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3858_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3860_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3862_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3867_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3875_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3877_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3885_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3891_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3892_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3893_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3894_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3895_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3896_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3898_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3900_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3913_0_8_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3919_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m393_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3945_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3948_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3952_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3954_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3959_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3968_0_4_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3977_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3978_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3979_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3984_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3985_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3988_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3990_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3998_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4000_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4004_0_4_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4013_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4018_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4019_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4032_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4033_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4048_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4058_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4060_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4064_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4065_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4077_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4088_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4089_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4095_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4098_0_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4101_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4102_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m41_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4110_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m411_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4114_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4115_0_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4118_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4125_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4129_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4130_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4132_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4134_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4135_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4142_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4143_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4149_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m415_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4159_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4160_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4162_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4166_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4171_0_2_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4177_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m418_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4189_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4190_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4202_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4203_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4205_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4206_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4207_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4208_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m42_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4213_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4214_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4221_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4224_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4225_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4227_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4228_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4229_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m423_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4238_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m424_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4248_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4252_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4255_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4264_0_7_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4267_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4273_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4274_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4280_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4292_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4299_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4301_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4305_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4309_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4310_0_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4312_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4315_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4320_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4323_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4324_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4326_0_1_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4327_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4330_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m433_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4331_0_2_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4333_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4338_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4342_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4348_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4351_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4353_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4356_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m436_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4365_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m437_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4371_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4377_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4385_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4388_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4392_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4396_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4401_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4407_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4412_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4413_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4415_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m442_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4432_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4447_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4449_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m445_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4451_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4456_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4463_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4465_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4466_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4481_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4482_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4483_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4487_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m449_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4496_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m450_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4501_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m45_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4512_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4515_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4528_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m453_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4531_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4532_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4557_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4561_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4570_0_2_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m457_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4583_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4585_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4590_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m460_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4603_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4611_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4613_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4622_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4631_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4638_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4641_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4646_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4650_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4654_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4659_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4669_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4679_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4680_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4681_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4694_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4699_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4703_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4721_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4722_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4723_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4726_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4730_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4737_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4739_0_5_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m475_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4751_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4761_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4763_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4768_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4773_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4782_0_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4784_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4785_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4786_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4808_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4812_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4814_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4818_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m482_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4822_0_5_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4844_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4860_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4862_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4865_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4867_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4869_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4873_0_3_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4874_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4883_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4888_0_2_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4891_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4894_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4900_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4901_0_1_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4903_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4904_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4908_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4912_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4913_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4917_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4918_0_3_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4919_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4920_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4926_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4927_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4934_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m494_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4946_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4957_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4968_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4970_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4972_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4973_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4978_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4979_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m498_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4985_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4987_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4992_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4994_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m503_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m510_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m51_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m537_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m538_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m554_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m563_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m564_0_5_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m565_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m566_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m596_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m599_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m607_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m612_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m631_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m641_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m648_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m66_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m670_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m673_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m675_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m676_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m679_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m681_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m683_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m685_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m687_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m692_0_6_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m697_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m698_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m705_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m7_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m722_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m731_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m735_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m736_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m753_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m755_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m757_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m767_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m770_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m781_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m783_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m791_0_7_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m792_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m796_0_7_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m803_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m807_0_1_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m808_0_6_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m82_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m821_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m823_0_1_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m826_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m83_0_3_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m831_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m837_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m850_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m851_0_4_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m857_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m860_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m861_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m862_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m866_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m87_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m877_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m880_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m888_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m889_0_6_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m913_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m914_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m918_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m924_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m926_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m927_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m93_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m931_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m935_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m942_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m95_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m952_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m964_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m976_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m982_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m991_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m993_0_2.png\u001B[0m\r\n",
      "│       └── \u001B[00m994_0_2.png\u001B[0m\r\n",
      "├── \u001B[01;34mmasks\u001B[0m\r\n",
      "│   ├── \u001B[01;34mtest\u001B[0m\r\n",
      "│   │   ├── \u001B[00m10_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1029_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1031_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1042_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1047_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1050_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m105_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1057_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1067_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1075_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1083_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1086_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1097_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1100_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1109_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1113_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1143_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1148_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1149_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m115_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1152_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m116_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1165_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1177_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1179_0_5_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1198_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1199_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1212_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1218_0_5_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1220_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1224_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1225_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1239_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1242_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1248_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m125_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1259_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1261_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1275_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1277_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1280_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1284_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1292_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1297_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1300_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m130_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1304_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1308_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1313_0_2_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1315_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1323_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1324_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1328_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1330_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1332_0_4_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1341_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1342_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1346_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1348_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1349_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m135_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1356_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1359_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1361_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1363_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1369_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1372_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1373_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1374_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1386_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1387_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1390_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1392_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1396_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1397_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1404_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1410_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m141_0_4_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1416_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1417_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1418_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1419_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1433_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1439_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1451_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1453_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1457_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1458_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1465_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1478_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1480_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1487_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1489_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1491_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m150_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1501_0_2_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m15_0_1_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1507_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m151_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m152_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1528_0_1_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1530_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1531_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1532_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1533_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1534_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1537_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1539_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1546_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1547_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1549_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1554_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1555_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1560_0_3_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m156_0_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1563_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1564_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1567_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1569_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1576_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1578_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1585_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1587_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1608_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m161_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1612_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1613_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1617_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1619_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1630_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1633_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1634_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1646_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1647_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1650_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1654_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m166_0_4_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1675_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1685_0_3_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1689_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1690_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1693_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1724_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1725_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1734_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1755_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1760_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1775_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1786_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1788_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1791_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1796_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1799_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1800_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1801_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1808_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1818_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1840_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1847_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1857_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1858_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1864_0_1_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1874_0_2_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1879_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m189_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1899_0_1_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1906_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m19_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1918_0_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1921_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1930_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1937_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1938_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1939_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1943_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1944_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1947_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1948_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1950_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1953_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1965_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1966_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1971_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1973_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1981_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1984_0_5_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1987_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m1989_0_7_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2000_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m20_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2009_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2010_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2013_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2015_0_5_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2022_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2025_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m203_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2034_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2042_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2043_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2044_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2048_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2053_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2054_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2058_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2067_0_5_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2076_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m208_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2085_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2090_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m210_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2101_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2111_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2114_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2119_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2120_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2137_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2138_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2141_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2144_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2147_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2155_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2158_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2166_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2169_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m217_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2178_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2181_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2188_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2196_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2201_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2207_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2210_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m222_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2225_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2227_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2237_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2245_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2249_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2250_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2258_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2264_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2272_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2274_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2281_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2285_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2290_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2295_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2296_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2302_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2304_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2305_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2313_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2319_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2330_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2331_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2344_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2355_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2360_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m237_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2375_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2379_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2381_0_3_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2383_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2390_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2396_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2418_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2423_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2426_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2433_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2435_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2436_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2467_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2468_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m247_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2477_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2480_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2482_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2492_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2494_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2506_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2515_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2518_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2524_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2536_0_3_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2544_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2547_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2567_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2568_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2569_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2577_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2578_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2587_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2589_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2592_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2593_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2601_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2602_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2607_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2609_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2616_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2622_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2624_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2634_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2646_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m265_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2668_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2669_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m267_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2680_0_4_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2682_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2686_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m270_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2702_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2710_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2717_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2726_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2727_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2728_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2748_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2763_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2769_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2779_0_4_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2785_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2786_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2787_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2797_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m280_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m28_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2805_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2811_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2812_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2829_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2830_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2846_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2857_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2861_0_6_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2867_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2868_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m288_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2881_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2882_0_1_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2884_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2885_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2897_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m29_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m292_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2924_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2926_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2931_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2934_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2935_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2939_0_4_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2943_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m296_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2964_0_4_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2965_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2966_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2968_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2978_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2994_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2997_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2998_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m2999_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3005_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3008_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3013_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3030_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3036_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3038_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3052_0_7_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3058_0_1_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3062_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m307_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3073_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3074_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3085_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3086_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3090_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m309_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3092_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3108_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3114_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3120_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3125_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3128_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3131_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3135_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3138_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3139_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3142_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3148_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3149_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3163_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3164_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3165_0_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3169_0_2_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3175_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3177_0_1_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3179_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m318_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3185_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3187_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3188_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3191_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3192_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3193_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3203_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3211_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3223_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3228_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3240_0_3_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3248_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3250_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3254_0_5_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3276_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3281_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3284_0_3_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3286_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3289_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3293_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3294_0_4_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3298_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3300_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3304_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3311_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3315_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3317_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3330_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3334_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3339_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3343_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3345_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3347_0_1_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3348_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3353_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m336_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3378_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3382_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m339_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3396_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3407_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3417_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m344_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3445_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3454_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3456_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3458_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3464_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3465_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3469_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3481_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3483_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3492_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3495_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3503_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3505_0_7_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3507_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3510_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3517_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3518_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3527_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3528_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3534_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3538_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3543_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3546_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3557_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3561_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3567_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m357_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3571_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3577_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m359_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3601_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3602_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3614_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3621_0_8_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3631_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3632_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3635_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3638_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3640_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3645_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3650_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3661_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3666_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3668_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3674_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3687_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m370_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3703_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3706_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3709_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3713_0_1_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3733_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3737_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3740_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3742_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3745_0_3_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3748_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3754_0_7_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3762_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m378_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3781_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3785_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3789_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3791_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3794_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3801_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3811_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3815_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3823_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3832_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3836_0_6_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3841_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3845_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3848_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3849_0_3_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3862_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3867_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3875_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3877_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3891_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3892_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3893_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3894_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3898_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3900_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3913_0_8_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3919_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m393_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3945_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3948_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3952_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3954_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3959_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3968_0_4_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3977_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3978_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3979_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3984_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3985_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3990_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m3998_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4000_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4004_0_4_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4013_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4018_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4019_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4032_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4033_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4048_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4058_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4060_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4064_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4077_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4088_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4089_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4095_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4098_0_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4101_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4102_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m41_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m411_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4115_0_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4118_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4125_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4129_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4130_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4134_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4135_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4142_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4143_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m415_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4159_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4160_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4162_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4166_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4171_0_2_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4177_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4189_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4190_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4202_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4203_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4205_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4207_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4208_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m42_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4213_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4221_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4224_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4225_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4228_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4229_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m423_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4238_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m424_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4248_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4252_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4255_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4264_0_7_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4267_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4273_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4274_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4280_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4292_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4299_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4301_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4309_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4310_0_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4312_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4315_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4320_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4323_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4324_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4326_0_1_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4327_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4330_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m433_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4331_0_2_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4333_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4338_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4342_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4351_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4353_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4356_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m436_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4365_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m437_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4371_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4377_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4385_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4388_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4392_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4396_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4407_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4412_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4413_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4415_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m442_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4432_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4447_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4449_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m445_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4451_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4456_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4463_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4465_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4466_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4481_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4482_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4487_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m449_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4496_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m450_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4501_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m45_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4512_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4515_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4528_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m453_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4531_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4532_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4557_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4561_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4570_0_2_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m457_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4583_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4585_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4590_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m460_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4603_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4611_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4613_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4622_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4631_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4638_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4641_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4646_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4650_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4654_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4659_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4669_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4679_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4681_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4694_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4699_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4703_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4721_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4722_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4723_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4726_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4730_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4737_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4739_0_5_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m475_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4751_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4761_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4763_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4768_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4782_0_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4784_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4785_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4786_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4808_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4814_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4818_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m482_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4822_0_5_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4844_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4860_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4862_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4865_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4867_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4869_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4874_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4883_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4888_0_2_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4894_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4900_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4901_0_1_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4903_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4904_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4908_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4912_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4913_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4917_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4918_0_3_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4919_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4920_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4926_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4927_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4934_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m494_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4946_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4957_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4968_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4970_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4972_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4973_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4978_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4979_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m498_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4985_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4987_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4992_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m4994_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m503_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m51_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m537_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m538_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m554_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m563_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m564_0_5_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m565_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m566_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m596_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m599_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m607_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m612_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m631_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m641_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m648_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m66_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m670_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m673_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m675_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m676_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m679_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m681_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m683_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m685_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m687_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m692_0_6_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m697_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m698_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m7_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m722_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m731_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m735_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m736_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m753_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m755_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m757_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m767_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m770_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m781_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m783_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m791_0_7_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m792_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m796_0_7_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m803_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m82_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m821_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m823_0_1_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m826_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m83_0_3_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m831_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m850_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m851_0_4_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m857_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m860_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m861_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m862_0_5.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m866_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m87_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m880_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m888_0_2.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m889_0_6_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m914_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m918_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m924_0_8.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m926_0_0.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m927_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m93_0_3.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m931_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m935_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m942_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m95_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m952_0_4.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m964_0_6.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m976_0_1.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m982_0_7.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m991_0_9.png\u001B[0m\r\n",
      "│   │   ├── \u001B[00m993_0_2.png\u001B[0m\r\n",
      "│   │   └── \u001B[00m994_0_2.png\u001B[0m\r\n",
      "│   └── \u001B[01;34mtrain\u001B[0m\r\n",
      "│       ├── \u001B[00m10_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1006_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1023_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1029_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1031_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1042_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1047_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1050_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m105_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1057_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1067_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1075_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1082_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1083_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1084_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1086_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1097_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1100_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1109_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1113_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1143_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1148_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1149_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m115_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1152_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1158_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m116_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1165_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1166_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1177_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1179_0_5_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1198_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1199_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1212_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1218_0_5_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1220_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1222_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1224_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1225_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1235_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1239_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1240_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1242_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1248_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m125_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1259_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1261_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1264_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1275_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1277_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1280_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1284_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1287_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1292_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1297_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1300_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m130_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1304_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1308_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1313_0_2_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1315_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1323_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1324_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1328_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1330_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1332_0_4_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1341_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1342_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1346_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1348_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1349_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m135_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1356_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1359_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1361_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1363_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1369_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1372_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1373_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1374_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1386_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1387_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1390_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m139_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1392_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1396_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1397_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1404_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1410_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m141_0_4_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1413_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1416_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1417_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1418_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1419_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1433_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1439_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1440_0_2_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1451_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1453_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1457_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1458_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1465_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1478_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1480_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1487_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1489_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1491_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m150_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1501_0_2_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m15_0_1_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1507_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m151_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m152_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1528_0_1_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1530_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1531_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1532_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1533_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1534_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1537_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1539_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1546_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1547_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1549_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1554_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1555_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1560_0_3_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m156_0_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1563_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1564_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1567_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1569_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1574_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1576_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1578_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1585_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1587_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1608_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m161_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1612_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1613_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1617_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1619_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1630_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1633_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1634_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1636_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1646_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1647_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1650_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1654_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1659_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m166_0_4_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1675_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1685_0_3_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1689_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1690_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1693_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1705_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1724_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1725_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1734_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1743_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1755_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1760_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1775_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1786_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1788_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1791_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1796_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1799_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1800_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1801_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1803_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1808_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1809_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1818_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1840_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1847_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m185_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1857_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1858_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1864_0_1_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1874_0_2_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1879_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m189_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1899_0_1_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1906_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m19_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1918_0_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1921_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1930_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1937_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1938_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1939_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1943_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1944_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1947_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1948_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1950_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1953_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1962_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1965_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1966_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1971_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1973_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1981_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1984_0_5_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1987_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m1989_0_7_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2000_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2004_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m20_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2009_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2010_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2013_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2015_0_5_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2022_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2025_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m203_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2034_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2036_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2042_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2043_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2044_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2048_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2053_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2054_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2058_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2067_0_5_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2076_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m208_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2085_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2090_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m210_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2101_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2110_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2111_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2114_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2119_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2120_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2137_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2138_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2141_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2144_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2147_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2155_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2158_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2166_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2167_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2169_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m217_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2178_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2181_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2188_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2196_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2201_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2207_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2210_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m222_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2225_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2227_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2237_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2245_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2249_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2250_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2258_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2264_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2272_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2274_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2281_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2285_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2290_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2295_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2296_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2302_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2304_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2305_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2309_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2313_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2316_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2319_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2330_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2331_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2344_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2355_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2360_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m237_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2375_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2379_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2381_0_3_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2383_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2390_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2396_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2418_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2423_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2426_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2433_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2435_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2436_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2437_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2467_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2468_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m247_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2477_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2480_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2482_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2486_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2492_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2494_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2506_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2515_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2518_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2524_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2534_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2536_0_3_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2544_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2547_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2567_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2568_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2569_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2577_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2578_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2587_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2589_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2592_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2593_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2601_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2602_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2607_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2609_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2616_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2622_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2624_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2634_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2642_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2645_0_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2646_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m265_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2658_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2668_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2669_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m267_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2675_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2680_0_4_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2682_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2686_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2692_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2695_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m270_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2702_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2710_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2717_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m272_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2726_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2727_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2728_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2748_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2752_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2763_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2769_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2772_0_8_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2777_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2779_0_4_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2785_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2786_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2787_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2797_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m280_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m28_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2805_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2811_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2812_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2829_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2830_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2846_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2857_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2861_0_6_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2867_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2868_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m288_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2881_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2882_0_1_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2884_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2885_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2897_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m29_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2905_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m292_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2924_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2926_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2931_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2934_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2935_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2939_0_4_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2943_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2954_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m296_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2964_0_4_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2965_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2966_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2968_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2974_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2978_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2994_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2997_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2998_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m2999_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3005_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3008_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3013_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3030_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3036_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3038_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3052_0_7_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3053_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3058_0_1_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3062_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m307_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3073_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3074_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m308_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3085_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3086_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3090_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m309_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3092_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3108_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3114_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3120_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3125_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3128_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3131_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3135_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3138_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3139_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3142_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3148_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3149_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3163_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3164_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3165_0_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3166_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3169_0_2_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3175_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3177_0_1_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3179_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m318_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3185_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3187_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3188_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3191_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3192_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3193_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3203_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3211_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3223_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3228_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3240_0_3_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3248_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3250_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3254_0_5_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3276_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3281_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3284_0_3_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3286_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3289_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m329_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3293_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3294_0_4_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3298_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3300_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3304_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3311_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3315_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3317_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3328_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3330_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3334_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3339_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3343_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3345_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3347_0_1_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3348_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3353_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m336_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3378_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3382_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m339_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3396_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3400_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3407_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3417_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m344_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3445_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3446_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3450_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3454_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3456_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3458_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3464_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3465_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3469_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3470_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3481_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3483_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3492_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3495_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3498_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3503_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3505_0_7_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3507_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3508_0_5_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3510_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3517_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3518_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3522_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3527_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3528_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3534_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3538_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m354_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3543_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3546_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3556_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3557_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3561_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3567_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m357_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3571_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3577_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m359_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3601_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3602_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3614_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3621_0_8_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3631_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3632_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3635_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3638_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3640_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3645_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3650_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3661_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3665_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3666_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3668_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3674_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3687_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m370_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3703_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3706_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3709_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3713_0_1_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3733_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3737_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3740_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3742_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3745_0_3_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3748_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3754_0_7_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3762_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3775_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m378_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3781_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3785_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3789_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3790_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3791_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3794_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3801_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m381_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3811_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3815_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3823_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3832_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3836_0_6_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3841_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3845_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3847_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3848_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3849_0_3_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3858_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3860_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3862_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3867_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3875_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3877_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3885_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3891_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3892_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3893_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3894_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3895_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3896_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3898_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3900_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3913_0_8_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3919_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m393_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3945_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3948_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3952_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3954_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3959_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3968_0_4_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3977_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3978_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3979_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3984_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3985_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3988_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3990_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m3998_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4000_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4004_0_4_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4013_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4018_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4019_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4032_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4033_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4048_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4058_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4060_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4064_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4065_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4077_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4088_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4089_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4095_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4098_0_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4101_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4102_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m41_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4110_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m411_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4114_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4115_0_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4118_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4125_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4129_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4130_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4132_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4134_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4135_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4142_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4143_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4149_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m415_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4159_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4160_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4162_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4166_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4171_0_2_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4177_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m418_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4189_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4190_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4202_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4203_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4205_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4206_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4207_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4208_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m42_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4213_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4214_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4221_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4224_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4225_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4227_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4228_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4229_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m423_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4238_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m424_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4248_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4252_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4255_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4264_0_7_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4267_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4273_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4274_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4280_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4292_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4299_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4301_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4305_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4309_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4310_0_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4312_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4315_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4320_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4323_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4324_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4326_0_1_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4327_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4330_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m433_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4331_0_2_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4333_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4338_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4342_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4348_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4351_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4353_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4356_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m436_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4365_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m437_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4371_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4377_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4385_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4388_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4392_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4396_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4401_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4407_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4412_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4413_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4415_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m442_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4432_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4447_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4449_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m445_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4451_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4456_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4463_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4465_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4466_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4481_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4482_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4483_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4487_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m449_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4496_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m450_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4501_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m45_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4512_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4515_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4528_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m453_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4531_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4532_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4557_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4561_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4570_0_2_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m457_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4583_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4585_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4590_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m460_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4603_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4611_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4613_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4622_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4631_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4638_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4641_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4646_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4650_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4654_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4659_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4669_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4679_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4680_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4681_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4694_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4699_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4703_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4721_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4722_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4723_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4726_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4730_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4737_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4739_0_5_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m475_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4751_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4761_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4763_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4768_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4773_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4782_0_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4784_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4785_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4786_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4808_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4812_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4814_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4818_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m482_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4822_0_5_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4844_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4860_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4862_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4865_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4867_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4869_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4873_0_3_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4874_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4883_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4888_0_2_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4891_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4894_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4900_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4901_0_1_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4903_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4904_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4908_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4912_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4913_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4917_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4918_0_3_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4919_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4920_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4926_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4927_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4934_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m494_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4946_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4957_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4968_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4970_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4972_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4973_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4978_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4979_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m498_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4985_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4987_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4992_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m4994_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m503_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m510_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m51_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m537_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m538_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m554_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m563_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m564_0_5_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m565_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m566_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m596_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m599_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m607_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m612_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m631_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m641_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m648_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m66_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m670_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m673_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m675_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m676_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m679_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m681_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m683_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m685_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m687_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m692_0_6_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m697_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m698_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m705_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m7_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m722_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m731_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m735_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m736_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m753_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m755_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m757_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m767_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m770_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m781_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m783_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m791_0_7_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m792_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m796_0_7_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m803_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m807_0_1_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m808_0_6_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m82_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m821_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m823_0_1_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m826_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m83_0_3_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m831_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m837_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m850_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m851_0_4_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m857_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m860_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m861_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m862_0_5.png\u001B[0m\r\n",
      "│       ├── \u001B[00m866_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m87_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m877_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m880_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m888_0_2.png\u001B[0m\r\n",
      "│       ├── \u001B[00m889_0_6_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m913_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m914_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m918_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m924_0_8.png\u001B[0m\r\n",
      "│       ├── \u001B[00m926_0_0.png\u001B[0m\r\n",
      "│       ├── \u001B[00m927_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m93_0_3.png\u001B[0m\r\n",
      "│       ├── \u001B[00m931_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m935_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m942_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m95_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m952_0_4.png\u001B[0m\r\n",
      "│       ├── \u001B[00m964_0_6.png\u001B[0m\r\n",
      "│       ├── \u001B[00m976_0_1.png\u001B[0m\r\n",
      "│       ├── \u001B[00m982_0_7.png\u001B[0m\r\n",
      "│       ├── \u001B[00m991_0_9.png\u001B[0m\r\n",
      "│       ├── \u001B[00m993_0_2.png\u001B[0m\r\n",
      "│       └── \u001B[00m994_0_2.png\u001B[0m\r\n",
      "├── \u001B[00msegmented.npy\u001B[0m\r\n",
      "├── \u001B[00mtest.txt\u001B[0m\r\n",
      "└── \u001B[00mtrain.txt\u001B[0m\r\n",
      "\r\n",
      "6 directories, 3503 files\r\n"
     ]
    }
   ],
   "source": [
    "!tree data/m2nist"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## MMSegmentation训练语义分割模型"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from PIL import Image\n",
    "\n",
    "import os.path as osp\n",
    "from tqdm import tqdm\n",
    "\n",
    "import mmcv\n",
    "import mmengine\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "### palette 颜色设置很重要\n",
    "#### 检查得知，background为[255,255,255],digits为[0,0,0]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 单张图像\n",
    "img_mask = mmcv.imread('data/m2nist/masks/train/15_0_1_4.png')\n",
    "\n",
    "# mask\n",
    "plt.imshow(img_mask)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "outputs": [
    {
     "data": {
      "text/plain": "(64, 84, 3)"
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img_mask.shape"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "mmcv读取的Mask图片是三通道相同的灰度图片"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "outputs": [
    {
     "data": {
      "text/plain": "array([[ True,  True,  True, ...,  True,  True,  True],\n       [ True,  True,  True, ...,  True,  True,  True],\n       [ True,  True,  True, ...,  True,  True,  True],\n       ...,\n       [ True,  True,  True, ...,  True,  True,  True],\n       [ True,  True,  True, ...,  True,  True,  True],\n       [ True,  True,  True, ...,  True,  True,  True]])"
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img_mask[:,:,0]==img_mask[:,:,1]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "outputs": [
    {
     "data": {
      "text/plain": "True"
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.sum(img_mask[:,:,0]==img_mask[:,:,1])==84*64"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "outputs": [
    {
     "data": {
      "text/plain": "array([[  0,   0,   0],\n       [  0,   0,   0],\n       [  0,   0,   0],\n       [  0,   0,   0],\n       [  0,   0,   0],\n       [255, 255, 255],\n       [255, 255, 255]], dtype=uint8)"
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img_mask[20,48:55,:]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "outputs": [
    {
     "data": {
      "text/plain": "(array([5032, 5032, 5032]), array([344, 344, 344]))"
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sum(sum(img_mask==255)),sum(sum(img_mask==0))"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 单张图像\n",
    "img = mmcv.imread('data/m2nist/images/train/15_0_1_4.png')\n",
    "\n",
    "# mask\n",
    "plt.imshow(img)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "outputs": [],
   "source": [
    "# 数据集图片和标注路径\n",
    "data_root = 'data/m2nist'\n",
    "img_dir = 'images'\n",
    "ann_dir = 'masks'\n",
    "\n",
    "# 类别和对应的颜色\n",
    "classes = ('background', 'digits')\n",
    "# palette = [[128, 128, 128], [151, 189, 8]]\n",
    "palette = [[255,255,255], [[0,0,0]]]\n",
    "# 检查得知，background为[255,255,255],digits为[0,0,0]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "outputs": [],
   "source": [
    "# from mmseg.registry import DATASETS\n",
    "# from mmseg.datasets import BaseSegDataset\n",
    "#\n",
    "# @DATASETS.register_module()\n",
    "# class M2nistDataset(BaseSegDataset):\n",
    "#   METAINFO = dict(classes = classes, palette = palette)\n",
    "#   def __init__(self, **kwargs):\n",
    "#     super().__init__(img_suffix='.png', seg_map_suffix='.png', **kwargs)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_fcn_4xb4-160k_cityscapes-512x1024\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "cityscapes/miou                                         69.1\r\n",
      "cityscapes/miou(ms+flip)                                71.05\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (512,1024)\r\n",
      "inference_time(ms/im)[V100,PyTorch,1,FP32,(512,1024)]   327.87\r\n",
      "lr_schd                                                 160000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     17.91\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_fcn_4xb4-40k_drive-64x64\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (64,64)\r\n",
      "drive/dice                                              78.67\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.68\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_fcn_4xb4-ce-1.0-dice-3.0-40k_drive-64x64\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (64,64)\r\n",
      "drive/dice                                              79.32\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.582\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_pspnet_4xb4-40k_drive-64x64\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (64,64)\r\n",
      "drive/dice                                              78.62\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.599\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_pspnet_4xb4-ce-1.0-dice-3.0-40k_drive-64x64\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (64,64)\r\n",
      "drive/dice                                              79.42\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.585\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_deeplabv3_4xb4-40k_drive-64x64\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (64,64)\r\n",
      "drive/dice                                              78.69\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.596\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_deeplabv3_4xb4-ce-1.0-dice-3.0-40k_drive-64x64\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (64,64)\r\n",
      "drive/dice                                              79.56\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.582\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_fcn_4xb4-40k_stare-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "stare/dice                                              81.02\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.968\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_fcn_4xb4-ce-1.0-dice-3.0-40k_stare-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "stare/dice                                              82.7\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.986\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_pspnet_4xb4-40k_stare-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "stare/dice                                              81.22\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.982\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_pspnet_4xb4-ce-1.0-dice-3.0-40k_stare-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "stare/dice                                              82.84\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     1.028\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_deeplabv3_4xb4-40k_stare-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "stare/dice                                              80.93\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.999\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_deeplabv3_4xb4-ce-1.0-dice-3.0-40k_stare-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "stare/dice                                              82.71\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     1.01\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "chase_db1/dice                                          80.24\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.968\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_fcn_4xb4-ce-1.0-dice-3.0-40k_chase-db1-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "chase_db1/dice                                          80.4\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.986\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_pspnet_4xb4-40k_chase-db1-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "chase_db1/dice                                          80.36\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.982\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_pspnet_4xb4-ce-1.0-dice-3.0-40k_chase-db1-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "chase_db1/dice                                          80.28\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     1.028\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet_s5-d16_deeplabv3_4xb4-40k_chase-db1-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "chase_db1/dice                                          80.47\r\n",
      "config                                                  configs/unet/unet_s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     0.999\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_deeplabv3_4xb4-ce-1.0-dice-3.0-40k_chase-db1-128x128\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "chase_db1/dice                                          80.37\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (128,128)\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     1.01\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_fcn_4xb4-40k_hrf-256x256\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (256,256)\r\n",
      "hrf/dice                                                79.45\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     2.525\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_fcn_4xb4-ce-1.0-dice-3.0-40k_hrf-256x256\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (256,256)\r\n",
      "hrf/dice                                                80.87\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     2.623\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_pspnet_4xb4-40k_hrf-256x256\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (256,256)\r\n",
      "hrf/dice                                                80.07\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     2.588\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_pspnet_4xb4-ce-1.0-dice-3.0-40k_hrf-256x256\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (256,256)\r\n",
      "hrf/dice                                                80.96\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     2.798\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_deeplabv3_4xb4-40k_hrf-256x256\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (256,256)\r\n",
      "hrf/dice                                                80.21\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     2.604\r\n",
      "weight                                                  https://download.open...\r\n",
      "--------------------------------------------------------------------------------\r\n",
      "config id: unet-s5-d16_deeplabv3_4xb4-ce-1.0-dice-3.0-40k_hrf-256x256\r\n",
      "backbone                                                unet-s5-d16\r\n",
      "config                                                  configs/unet/unet-s5-...\r\n",
      "crop_size                                               (256,256)\r\n",
      "hrf/dice                                                80.71\r\n",
      "lr_schd                                                 40000\r\n",
      "model                                                   unet\r\n",
      "paper                                                   URL,Title\r\n",
      "readme                                                  configs/unet/README.md\r\n",
      "training_data                                           cityscapes,drive,star...\r\n",
      "training_memory(GB)                                     2.607\r\n",
      "weight                                                  https://download.open...\r\n",
      "\r\n"
     ]
    }
   ],
   "source": [
    "# !mim search mmsegmentation --model \"unet\""
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "processing unet-s5-d16_deeplabv3_4xb4-ce-1.0-dice-3.0-40k_drive-64x64...\r\n",
      "\u001B[32mdeeplabv3_unet_s5-d16_ce-1.0-dice-3.0_64x64_40k_drive_20211210_201825-6bf0efd7.pth exists in /home/cine/mmsegmentation\u001B[0m\r\n",
      "\u001B[32mSuccessfully dumped unet-s5-d16_deeplabv3_4xb4-ce-1.0-dice-3.0-40k_drive-64x64.py to /home/cine/mmsegmentation\u001B[0m\r\n"
     ]
    }
   ],
   "source": [
    "# # 下载 config 文件 和 预训练模型checkpoint权重文件\n",
    "# !mim download mmsegmentation --config unet-s5-d16_deeplabv3_4xb4-ce-1.0-dice-3.0-40k_drive-64x64 --dest ."
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "outputs": [],
   "source": [
    "# from mmengine import Config\n",
    "# config_path = \"/home/cine/mmsegmentation/configs/unet/unet-s5-d16_deeplabv3_4xb4-ce-1.0-dice-3.0-40k_drive-64x64.py\"\n",
    "# cfg = Config.fromfile(config_path)\n",
    "# # cfg = Config.fromfile('unet-s5-d16_deeplabv3_4xb4-ce-1.0-dice-3.0-40k_drive-64x64.py')\n",
    "# # cfg = Config.fromfile(config_path)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "processing pspnet_r50-d8_4xb2-40k_cityscapes-512x1024...\r\n",
      "\u001B[32mpspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth exists in /home/cine/mmsegmentation\u001B[0m\r\n",
      "\u001B[32mSuccessfully dumped pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py to /home/cine/mmsegmentation\u001B[0m\r\n"
     ]
    }
   ],
   "source": [
    "# # 下载 config 文件 和 预训练模型checkpoint权重文件\n",
    "# !mim download mmsegmentation --config pspnet_r50-d8_4xb2-40k_cityscapes-512x1024 --dest . --dest ."
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "outputs": [],
   "source": [
    "from mmengine import Config\n",
    "config_path = \"pspnet_r50-d8_4xb2-40k_cityscapes-512x1024.py\"\n",
    "cfg = Config.fromfile(config_path)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "norm_cfg = dict(type='SyncBN', requires_grad=True)\n",
      "data_preprocessor = dict(\n",
      "    type='SegDataPreProcessor',\n",
      "    mean=[123.675, 116.28, 103.53],\n",
      "    std=[58.395, 57.12, 57.375],\n",
      "    bgr_to_rgb=True,\n",
      "    pad_val=0,\n",
      "    seg_pad_val=255,\n",
      "    size=(512, 1024))\n",
      "model = dict(\n",
      "    type='EncoderDecoder',\n",
      "    data_preprocessor=dict(\n",
      "        type='SegDataPreProcessor',\n",
      "        mean=[123.675, 116.28, 103.53],\n",
      "        std=[58.395, 57.12, 57.375],\n",
      "        bgr_to_rgb=True,\n",
      "        pad_val=0,\n",
      "        seg_pad_val=255,\n",
      "        size=(512, 1024)),\n",
      "    pretrained='open-mmlab://resnet50_v1c',\n",
      "    backbone=dict(\n",
      "        type='ResNetV1c',\n",
      "        depth=50,\n",
      "        num_stages=4,\n",
      "        out_indices=(0, 1, 2, 3),\n",
      "        dilations=(1, 1, 2, 4),\n",
      "        strides=(1, 2, 1, 1),\n",
      "        norm_cfg=dict(type='SyncBN', requires_grad=True),\n",
      "        norm_eval=False,\n",
      "        style='pytorch',\n",
      "        contract_dilation=True),\n",
      "    decode_head=dict(\n",
      "        type='PSPHead',\n",
      "        in_channels=2048,\n",
      "        in_index=3,\n",
      "        channels=512,\n",
      "        pool_scales=(1, 2, 3, 6),\n",
      "        dropout_ratio=0.1,\n",
      "        num_classes=19,\n",
      "        norm_cfg=dict(type='SyncBN', requires_grad=True),\n",
      "        align_corners=False,\n",
      "        loss_decode=dict(\n",
      "            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n",
      "    auxiliary_head=dict(\n",
      "        type='FCNHead',\n",
      "        in_channels=1024,\n",
      "        in_index=2,\n",
      "        channels=256,\n",
      "        num_convs=1,\n",
      "        concat_input=False,\n",
      "        dropout_ratio=0.1,\n",
      "        num_classes=19,\n",
      "        norm_cfg=dict(type='SyncBN', requires_grad=True),\n",
      "        align_corners=False,\n",
      "        loss_decode=dict(\n",
      "            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),\n",
      "    train_cfg=dict(),\n",
      "    test_cfg=dict(mode='whole'))\n",
      "dataset_type = 'CityscapesDataset'\n",
      "data_root = 'data/cityscapes/'\n",
      "crop_size = (512, 1024)\n",
      "train_pipeline = [\n",
      "    dict(type='LoadImageFromFile'),\n",
      "    dict(type='LoadAnnotations'),\n",
      "    dict(\n",
      "        type='RandomResize',\n",
      "        scale=(2048, 1024),\n",
      "        ratio_range=(0.5, 2.0),\n",
      "        keep_ratio=True),\n",
      "    dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),\n",
      "    dict(type='RandomFlip', prob=0.5),\n",
      "    dict(type='PhotoMetricDistortion'),\n",
      "    dict(type='PackSegInputs')\n",
      "]\n",
      "test_pipeline = [\n",
      "    dict(type='LoadImageFromFile'),\n",
      "    dict(type='Resize', scale=(2048, 1024), keep_ratio=True),\n",
      "    dict(type='LoadAnnotations'),\n",
      "    dict(type='PackSegInputs')\n",
      "]\n",
      "img_ratios = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75]\n",
      "tta_pipeline = [\n",
      "    dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),\n",
      "    dict(\n",
      "        type='TestTimeAug',\n",
      "        transforms=[[{\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 0.5,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 0.75,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.0,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.25,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.5,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.75,\n",
      "            'keep_ratio': True\n",
      "        }],\n",
      "                    [{\n",
      "                        'type': 'RandomFlip',\n",
      "                        'prob': 0.0,\n",
      "                        'direction': 'horizontal'\n",
      "                    }, {\n",
      "                        'type': 'RandomFlip',\n",
      "                        'prob': 1.0,\n",
      "                        'direction': 'horizontal'\n",
      "                    }], [{\n",
      "                        'type': 'LoadAnnotations'\n",
      "                    }], [{\n",
      "                        'type': 'PackSegInputs'\n",
      "                    }]])\n",
      "]\n",
      "train_dataloader = dict(\n",
      "    batch_size=2,\n",
      "    num_workers=2,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='InfiniteSampler', shuffle=True),\n",
      "    dataset=dict(\n",
      "        type='CityscapesDataset',\n",
      "        data_root='data/cityscapes/',\n",
      "        data_prefix=dict(\n",
      "            img_path='leftImg8bit/train', seg_map_path='gtFine/train'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(\n",
      "                type='RandomResize',\n",
      "                scale=(2048, 1024),\n",
      "                ratio_range=(0.5, 2.0),\n",
      "                keep_ratio=True),\n",
      "            dict(type='RandomCrop', crop_size=(512, 1024), cat_max_ratio=0.75),\n",
      "            dict(type='RandomFlip', prob=0.5),\n",
      "            dict(type='PhotoMetricDistortion'),\n",
      "            dict(type='PackSegInputs')\n",
      "        ]))\n",
      "val_dataloader = dict(\n",
      "    batch_size=1,\n",
      "    num_workers=4,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='DefaultSampler', shuffle=False),\n",
      "    dataset=dict(\n",
      "        type='CityscapesDataset',\n",
      "        data_root='data/cityscapes/',\n",
      "        data_prefix=dict(\n",
      "            img_path='leftImg8bit/val', seg_map_path='gtFine/val'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='Resize', scale=(2048, 1024), keep_ratio=True),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='PackSegInputs')\n",
      "        ]))\n",
      "test_dataloader = dict(\n",
      "    batch_size=1,\n",
      "    num_workers=4,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='DefaultSampler', shuffle=False),\n",
      "    dataset=dict(\n",
      "        type='CityscapesDataset',\n",
      "        data_root='data/cityscapes/',\n",
      "        data_prefix=dict(\n",
      "            img_path='leftImg8bit/val', seg_map_path='gtFine/val'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='Resize', scale=(2048, 1024), keep_ratio=True),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='PackSegInputs')\n",
      "        ]))\n",
      "val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])\n",
      "test_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])\n",
      "default_scope = 'mmseg'\n",
      "env_cfg = dict(\n",
      "    cudnn_benchmark=True,\n",
      "    mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),\n",
      "    dist_cfg=dict(backend='nccl'))\n",
      "vis_backends = [dict(type='LocalVisBackend')]\n",
      "visualizer = dict(\n",
      "    type='SegLocalVisualizer',\n",
      "    vis_backends=[dict(type='LocalVisBackend')],\n",
      "    name='visualizer')\n",
      "log_processor = dict(by_epoch=False)\n",
      "log_level = 'INFO'\n",
      "load_from = None\n",
      "resume = False\n",
      "tta_model = dict(type='SegTTAModel')\n",
      "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n",
      "optim_wrapper = dict(\n",
      "    type='OptimWrapper',\n",
      "    optimizer=dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005),\n",
      "    clip_grad=None)\n",
      "param_scheduler = [\n",
      "    dict(\n",
      "        type='PolyLR',\n",
      "        eta_min=0.0001,\n",
      "        power=0.9,\n",
      "        begin=0,\n",
      "        end=40000,\n",
      "        by_epoch=False)\n",
      "]\n",
      "train_cfg = dict(type='IterBasedTrainLoop', max_iters=40000, val_interval=4000)\n",
      "val_cfg = dict(type='ValLoop')\n",
      "test_cfg = dict(type='TestLoop')\n",
      "default_hooks = dict(\n",
      "    timer=dict(type='IterTimerHook'),\n",
      "    logger=dict(type='LoggerHook', interval=50, log_metric_by_epoch=False),\n",
      "    param_scheduler=dict(type='ParamSchedulerHook'),\n",
      "    checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=4000),\n",
      "    sampler_seed=dict(type='DistSamplerSeedHook'),\n",
      "    visualization=dict(type='SegVisualizationHook'))\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(cfg.pretty_text)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "outputs": [
    {
     "data": {
      "text/plain": "{'type': 'FCNHead',\n 'in_channels': 1024,\n 'in_index': 2,\n 'channels': 256,\n 'num_convs': 1,\n 'concat_input': False,\n 'dropout_ratio': 0.1,\n 'num_classes': 19,\n 'norm_cfg': {'type': 'SyncBN', 'requires_grad': True},\n 'align_corners': False,\n 'loss_decode': {'type': 'CrossEntropyLoss',\n  'use_sigmoid': False,\n  'loss_weight': 0.4}}"
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cfg.model.auxiliary_head"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "outputs": [],
   "source": [
    "cfg.norm_cfg = dict(type='BN', requires_grad=True) # 只使用GPU时，BN取代SyncBN\n",
    "cfg.model.data_preprocessor.size = cfg.crop_size  # input size?\n",
    "cfg.model.backbone.norm_cfg = cfg.norm_cfg\n",
    "cfg.model.decode_head.norm_cfg = cfg.norm_cfg\n",
    "cfg.model.auxiliary_head.norm_cfg = cfg.norm_cfg\n",
    "# modify num classes of the model in decode/auxiliary head\n",
    "cfg.model.decode_head.num_classes = 2\n",
    "cfg.model.auxiliary_head.num_classes = 2\n",
    "\n",
    "# 修改数据集的 type 和 root\n",
    "cfg.dataset_type = 'M2nistDataset'\n",
    "cfg.data_root = data_root #\"data/m2nist\"\n",
    "\n",
    "cfg.train_dataloader.batch_size = 8\n",
    "\n",
    "# remove random resize\n",
    "cfg.train_pipeline = [\n",
    "    dict(type='LoadImageFromFile'),\n",
    "    dict(type='LoadAnnotations'),\n",
    "    # dict(type='RandomResize', scale=(84, 64), ratio_range=(0.5, 2.0), keep_ratio=True),\n",
    "    dict(type='RandomCrop', crop_size=cfg.crop_size, cat_max_ratio=0.75),\n",
    "    dict(type='RandomFlip', prob=0.5),\n",
    "    dict(type='PackSegInputs')\n",
    "]\n",
    "\n",
    "cfg.test_pipeline = [\n",
    "    dict(type='LoadImageFromFile'),\n",
    "    # dict(type='Resize', scale=(320, 240), keep_ratio=True),\n",
    "    # add loading annotation after ``Resize`` because ground truth\n",
    "    # does not need to do resize data transform\n",
    "    dict(type='LoadAnnotations'),\n",
    "    dict(type='PackSegInputs')\n",
    "]\n",
    "\n",
    "# data_root = 'data/m2nist'\n",
    "# img_dir = 'images'\n",
    "# ann_dir = 'masks'\n",
    "# FileNotFoundError: [Errno 2] No such file or directory: 'data/m2nist/images/4388_0_4.png'\n",
    "# data/m2nist/images/train\n",
    "\n",
    "\n",
    "cfg.train_dataloader.dataset.type = cfg.dataset_type\n",
    "cfg.train_dataloader.dataset.data_root = cfg.data_root\n",
    "cfg.train_dataloader.dataset.data_prefix = dict(img_path=f'{img_dir}/train', seg_map_path=f'{ann_dir}/train')\n",
    "cfg.train_dataloader.dataset.pipeline = cfg.train_pipeline\n",
    "cfg.train_dataloader.dataset.ann_file = 'train.txt'\n",
    "\n",
    "cfg.val_dataloader.dataset.type = cfg.dataset_type\n",
    "cfg.val_dataloader.dataset.data_root = cfg.data_root\n",
    "cfg.val_dataloader.dataset.data_prefix = dict(img_path=f'{img_dir}/test/', seg_map_path=f'{ann_dir}/test/')\n",
    "cfg.val_dataloader.dataset.pipeline = cfg.test_pipeline\n",
    "cfg.val_dataloader.dataset.ann_file = 'test.txt'\n",
    "\n",
    "cfg.test_dataloader = cfg.val_dataloader\n",
    "\n",
    "\n",
    "# 载入预训练模型权重\n",
    "cfg.load_from = 'deeplabv3_unet_s5-d16_ce-1.0-dice-3.0_64x64_40k_drive_20211210_201825-6bf0efd7.pth'\n",
    "\n",
    "# 工作目录\n",
    "cfg.work_dir = './work_dirs/m2nist2'\n",
    "\n",
    "# 训练迭代次数\n",
    "cfg.train_cfg.max_iters = 300\n",
    "# 评估模型间隔\n",
    "cfg.train_cfg.val_interval = 50\n",
    "# 日志记录间隔\n",
    "cfg.default_hooks.logger.interval = 10\n",
    "# 模型权重保存间隔\n",
    "cfg.default_hooks.checkpoint.interval = 100\n",
    "\n",
    "# 随机数种子\n",
    "cfg['randomness'] = dict(seed=0)\n"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "outputs": [],
   "source": [
    "# dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n",
    "cfg['optimzer'] = dict(type='Adam', lr=0.0001, momentum=0.9, weight_decay=0.0005)\n",
    "\n",
    "cfg.crop_size = (84, 64)  # crop_size = image size\n",
    "cfg.model.data_preprocessor.mean = [11.61565,11.61565,11.61565]\n",
    "cfg.model.data_preprocessor.std = [49.230198,49.230198,49.230198]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "norm_cfg = dict(type='BN', requires_grad=True)\n",
      "data_preprocessor = dict(\n",
      "    type='SegDataPreProcessor',\n",
      "    mean=[123.675, 116.28, 103.53],\n",
      "    std=[58.395, 57.12, 57.375],\n",
      "    bgr_to_rgb=True,\n",
      "    pad_val=0,\n",
      "    seg_pad_val=255,\n",
      "    size=(512, 1024))\n",
      "model = dict(\n",
      "    type='EncoderDecoder',\n",
      "    data_preprocessor=dict(\n",
      "        type='SegDataPreProcessor',\n",
      "        mean=[11.61565, 11.61565, 11.61565],\n",
      "        std=[49.230198, 49.230198, 49.230198],\n",
      "        bgr_to_rgb=True,\n",
      "        pad_val=0,\n",
      "        seg_pad_val=255,\n",
      "        size=(84, 64)),\n",
      "    pretrained='open-mmlab://resnet50_v1c',\n",
      "    backbone=dict(\n",
      "        type='ResNetV1c',\n",
      "        depth=50,\n",
      "        num_stages=4,\n",
      "        out_indices=(0, 1, 2, 3),\n",
      "        dilations=(1, 1, 2, 4),\n",
      "        strides=(1, 2, 1, 1),\n",
      "        norm_cfg=dict(type='BN', requires_grad=True),\n",
      "        norm_eval=False,\n",
      "        style='pytorch',\n",
      "        contract_dilation=True),\n",
      "    decode_head=dict(\n",
      "        type='PSPHead',\n",
      "        in_channels=2048,\n",
      "        in_index=3,\n",
      "        channels=512,\n",
      "        pool_scales=(1, 2, 3, 6),\n",
      "        dropout_ratio=0.1,\n",
      "        num_classes=2,\n",
      "        norm_cfg=dict(type='BN', requires_grad=True),\n",
      "        align_corners=False,\n",
      "        loss_decode=dict(\n",
      "            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n",
      "    auxiliary_head=dict(\n",
      "        type='FCNHead',\n",
      "        in_channels=1024,\n",
      "        in_index=2,\n",
      "        channels=256,\n",
      "        num_convs=1,\n",
      "        concat_input=False,\n",
      "        dropout_ratio=0.1,\n",
      "        num_classes=2,\n",
      "        norm_cfg=dict(type='BN', requires_grad=True),\n",
      "        align_corners=False,\n",
      "        loss_decode=dict(\n",
      "            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),\n",
      "    train_cfg=dict(),\n",
      "    test_cfg=dict(mode='whole'))\n",
      "dataset_type = 'M2nistDataset'\n",
      "data_root = 'data/m2nist'\n",
      "crop_size = (84, 64)\n",
      "train_pipeline = [\n",
      "    dict(type='LoadImageFromFile'),\n",
      "    dict(type='LoadAnnotations'),\n",
      "    dict(type='RandomCrop', crop_size=(84, 64), cat_max_ratio=0.75),\n",
      "    dict(type='RandomFlip', prob=0.5),\n",
      "    dict(type='PackSegInputs')\n",
      "]\n",
      "test_pipeline = [\n",
      "    dict(type='LoadImageFromFile'),\n",
      "    dict(type='LoadAnnotations'),\n",
      "    dict(type='PackSegInputs')\n",
      "]\n",
      "img_ratios = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75]\n",
      "tta_pipeline = [\n",
      "    dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),\n",
      "    dict(\n",
      "        type='TestTimeAug',\n",
      "        transforms=[[{\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 0.5,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 0.75,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.0,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.25,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.5,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.75,\n",
      "            'keep_ratio': True\n",
      "        }],\n",
      "                    [{\n",
      "                        'type': 'RandomFlip',\n",
      "                        'prob': 0.0,\n",
      "                        'direction': 'horizontal'\n",
      "                    }, {\n",
      "                        'type': 'RandomFlip',\n",
      "                        'prob': 1.0,\n",
      "                        'direction': 'horizontal'\n",
      "                    }], [{\n",
      "                        'type': 'LoadAnnotations'\n",
      "                    }], [{\n",
      "                        'type': 'PackSegInputs'\n",
      "                    }]])\n",
      "]\n",
      "train_dataloader = dict(\n",
      "    batch_size=8,\n",
      "    num_workers=2,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='InfiniteSampler', shuffle=True),\n",
      "    dataset=dict(\n",
      "        type='M2nistDataset',\n",
      "        data_root='data/m2nist',\n",
      "        data_prefix=dict(img_path='images/train', seg_map_path='masks/train'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='RandomCrop', crop_size=(84, 64), cat_max_ratio=0.75),\n",
      "            dict(type='RandomFlip', prob=0.5),\n",
      "            dict(type='PackSegInputs')\n",
      "        ],\n",
      "        ann_file='train.txt'))\n",
      "val_dataloader = dict(\n",
      "    batch_size=1,\n",
      "    num_workers=4,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='DefaultSampler', shuffle=False),\n",
      "    dataset=dict(\n",
      "        type='M2nistDataset',\n",
      "        data_root='data/m2nist',\n",
      "        data_prefix=dict(img_path='images/test/', seg_map_path='masks/test/'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='PackSegInputs')\n",
      "        ],\n",
      "        ann_file='test.txt'))\n",
      "test_dataloader = dict(\n",
      "    batch_size=1,\n",
      "    num_workers=4,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='DefaultSampler', shuffle=False),\n",
      "    dataset=dict(\n",
      "        type='M2nistDataset',\n",
      "        data_root='data/m2nist',\n",
      "        data_prefix=dict(img_path='images/test/', seg_map_path='masks/test/'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='PackSegInputs')\n",
      "        ],\n",
      "        ann_file='test.txt'))\n",
      "val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])\n",
      "test_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])\n",
      "default_scope = 'mmseg'\n",
      "env_cfg = dict(\n",
      "    cudnn_benchmark=True,\n",
      "    mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),\n",
      "    dist_cfg=dict(backend='nccl'))\n",
      "vis_backends = [dict(type='LocalVisBackend')]\n",
      "visualizer = dict(\n",
      "    type='SegLocalVisualizer',\n",
      "    vis_backends=[dict(type='LocalVisBackend')],\n",
      "    name='visualizer')\n",
      "log_processor = dict(by_epoch=False)\n",
      "log_level = 'INFO'\n",
      "load_from = 'deeplabv3_unet_s5-d16_ce-1.0-dice-3.0_64x64_40k_drive_20211210_201825-6bf0efd7.pth'\n",
      "resume = False\n",
      "tta_model = dict(type='SegTTAModel')\n",
      "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n",
      "optim_wrapper = dict(\n",
      "    type='OptimWrapper',\n",
      "    optimizer=dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005),\n",
      "    clip_grad=None)\n",
      "param_scheduler = [\n",
      "    dict(\n",
      "        type='PolyLR',\n",
      "        eta_min=0.0001,\n",
      "        power=0.9,\n",
      "        begin=0,\n",
      "        end=40000,\n",
      "        by_epoch=False)\n",
      "]\n",
      "train_cfg = dict(type='IterBasedTrainLoop', max_iters=300, val_interval=50)\n",
      "val_cfg = dict(type='ValLoop')\n",
      "test_cfg = dict(type='TestLoop')\n",
      "default_hooks = dict(\n",
      "    timer=dict(type='IterTimerHook'),\n",
      "    logger=dict(type='LoggerHook', interval=10, log_metric_by_epoch=False),\n",
      "    param_scheduler=dict(type='ParamSchedulerHook'),\n",
      "    checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=100),\n",
      "    sampler_seed=dict(type='DistSamplerSeedHook'),\n",
      "    visualization=dict(type='SegVisualizationHook'))\n",
      "work_dir = './work_dirs/m2nist2'\n",
      "randomness = dict(seed=0)\n",
      "optimzer = dict(type='Adam', lr=0.0001, momentum=0.9, weight_decay=0.0005)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(cfg.pretty_text)\n"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "outputs": [],
   "source": [
    "cfg.dump('m2nist_cfg.py')"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "outputs": [],
   "source": [
    "# from mmseg.registry import DATASETS\n",
    "# from mmseg.datasets import BaseSegDataset\n",
    "#\n",
    "# @DATASETS.register_module()\n",
    "# class M2nistDataset(BaseSegDataset):\n",
    "#   METAINFO = dict(classes = classes, palette = palette)\n",
    "#   def __init__(self, **kwargs):\n",
    "#     super().__init__(img_suffix='.png', seg_map_suffix='.png', **kwargs)\n",
    "\n",
    "# KeyError: 'M2nistDataset is already registered in dataset at mmseg.datasets.m2nist'"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/cine/miniconda3/envs/mmlab2/lib/python3.8/site-packages/torch/cuda/__init__.py:80: UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 804: forward compatibility was attempted on non supported HW (Triggered internally at  ../c10/cuda/CUDAFunctions.cpp:112.)\n",
      "  return torch._C._cuda_getDeviceCount() > 0\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "02/15 02:48:03 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - \n",
      "------------------------------------------------------------\n",
      "System environment:\n",
      "    sys.platform: linux\n",
      "    Python: 3.8.16 (default, Jan 17 2023, 23:13:24) [GCC 11.2.0]\n",
      "    CUDA available: False\n",
      "    numpy_random_seed: 0\n",
      "    GCC: gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0\n",
      "    PyTorch: 1.10.1+cu113\n",
      "    PyTorch compiling details: PyTorch built with:\n",
      "  - GCC 7.3\n",
      "  - C++ Version: 201402\n",
      "  - Intel(R) oneAPI Math Kernel Library Version 2021.4-Product Build 20210904 for Intel(R) 64 architecture applications\n",
      "  - Intel(R) MKL-DNN v2.2.3 (Git Hash 7336ca9f055cf1bfa13efb658fe15dc9b41f0740)\n",
      "  - OpenMP 201511 (a.k.a. OpenMP 4.5)\n",
      "  - LAPACK is enabled (usually provided by MKL)\n",
      "  - NNPACK is enabled\n",
      "  - CPU capability usage: AVX2\n",
      "  - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.2.0, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.10.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, \n",
      "\n",
      "    TorchVision: 0.11.2+cu113\n",
      "    OpenCV: 4.7.0\n",
      "    MMEngine: 0.5.0\n",
      "\n",
      "Runtime environment:\n",
      "    cudnn_benchmark: True\n",
      "    mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0}\n",
      "    dist_cfg: {'backend': 'nccl'}\n",
      "    seed: 0\n",
      "    Distributed launcher: none\n",
      "    Distributed training: False\n",
      "    GPU number: 1\n",
      "------------------------------------------------------------\n",
      "\n",
      "02/15 02:48:03 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Config:\n",
      "norm_cfg = dict(type='BN', requires_grad=True)\n",
      "data_preprocessor = dict(\n",
      "    type='SegDataPreProcessor',\n",
      "    mean=[123.675, 116.28, 103.53],\n",
      "    std=[58.395, 57.12, 57.375],\n",
      "    bgr_to_rgb=True,\n",
      "    pad_val=0,\n",
      "    seg_pad_val=255,\n",
      "    size=(512, 1024))\n",
      "model = dict(\n",
      "    type='EncoderDecoder',\n",
      "    data_preprocessor=dict(\n",
      "        type='SegDataPreProcessor',\n",
      "        mean=[11.61565, 11.61565, 11.61565],\n",
      "        std=[49.230198, 49.230198, 49.230198],\n",
      "        bgr_to_rgb=True,\n",
      "        pad_val=0,\n",
      "        seg_pad_val=255,\n",
      "        size=(84, 64)),\n",
      "    pretrained='open-mmlab://resnet50_v1c',\n",
      "    backbone=dict(\n",
      "        type='ResNetV1c',\n",
      "        depth=50,\n",
      "        num_stages=4,\n",
      "        out_indices=(0, 1, 2, 3),\n",
      "        dilations=(1, 1, 2, 4),\n",
      "        strides=(1, 2, 1, 1),\n",
      "        norm_cfg=dict(type='BN', requires_grad=True),\n",
      "        norm_eval=False,\n",
      "        style='pytorch',\n",
      "        contract_dilation=True),\n",
      "    decode_head=dict(\n",
      "        type='PSPHead',\n",
      "        in_channels=2048,\n",
      "        in_index=3,\n",
      "        channels=512,\n",
      "        pool_scales=(1, 2, 3, 6),\n",
      "        dropout_ratio=0.1,\n",
      "        num_classes=2,\n",
      "        norm_cfg=dict(type='BN', requires_grad=True),\n",
      "        align_corners=False,\n",
      "        loss_decode=dict(\n",
      "            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n",
      "    auxiliary_head=dict(\n",
      "        type='FCNHead',\n",
      "        in_channels=1024,\n",
      "        in_index=2,\n",
      "        channels=256,\n",
      "        num_convs=1,\n",
      "        concat_input=False,\n",
      "        dropout_ratio=0.1,\n",
      "        num_classes=2,\n",
      "        norm_cfg=dict(type='BN', requires_grad=True),\n",
      "        align_corners=False,\n",
      "        loss_decode=dict(\n",
      "            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),\n",
      "    train_cfg=dict(),\n",
      "    test_cfg=dict(mode='whole'))\n",
      "dataset_type = 'M2nistDataset'\n",
      "data_root = 'data/m2nist'\n",
      "crop_size = (84, 64)\n",
      "train_pipeline = [\n",
      "    dict(type='LoadImageFromFile'),\n",
      "    dict(type='LoadAnnotations'),\n",
      "    dict(type='RandomCrop', crop_size=(84, 64), cat_max_ratio=0.75),\n",
      "    dict(type='RandomFlip', prob=0.5),\n",
      "    dict(type='PackSegInputs')\n",
      "]\n",
      "test_pipeline = [\n",
      "    dict(type='LoadImageFromFile'),\n",
      "    dict(type='LoadAnnotations'),\n",
      "    dict(type='PackSegInputs')\n",
      "]\n",
      "img_ratios = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75]\n",
      "tta_pipeline = [\n",
      "    dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),\n",
      "    dict(\n",
      "        type='TestTimeAug',\n",
      "        transforms=[[{\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 0.5,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 0.75,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.0,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.25,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.5,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.75,\n",
      "            'keep_ratio': True\n",
      "        }],\n",
      "                    [{\n",
      "                        'type': 'RandomFlip',\n",
      "                        'prob': 0.0,\n",
      "                        'direction': 'horizontal'\n",
      "                    }, {\n",
      "                        'type': 'RandomFlip',\n",
      "                        'prob': 1.0,\n",
      "                        'direction': 'horizontal'\n",
      "                    }], [{\n",
      "                        'type': 'LoadAnnotations'\n",
      "                    }], [{\n",
      "                        'type': 'PackSegInputs'\n",
      "                    }]])\n",
      "]\n",
      "train_dataloader = dict(\n",
      "    batch_size=8,\n",
      "    num_workers=2,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='InfiniteSampler', shuffle=True),\n",
      "    dataset=dict(\n",
      "        type='M2nistDataset',\n",
      "        data_root='data/m2nist',\n",
      "        data_prefix=dict(img_path='images/train', seg_map_path='masks/train'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='RandomCrop', crop_size=(84, 64), cat_max_ratio=0.75),\n",
      "            dict(type='RandomFlip', prob=0.5),\n",
      "            dict(type='PackSegInputs')\n",
      "        ],\n",
      "        ann_file='train.txt'))\n",
      "val_dataloader = dict(\n",
      "    batch_size=1,\n",
      "    num_workers=4,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='DefaultSampler', shuffle=False),\n",
      "    dataset=dict(\n",
      "        type='M2nistDataset',\n",
      "        data_root='data/m2nist',\n",
      "        data_prefix=dict(img_path='images/test/', seg_map_path='masks/test/'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='PackSegInputs')\n",
      "        ],\n",
      "        ann_file='test.txt'))\n",
      "test_dataloader = dict(\n",
      "    batch_size=1,\n",
      "    num_workers=4,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='DefaultSampler', shuffle=False),\n",
      "    dataset=dict(\n",
      "        type='M2nistDataset',\n",
      "        data_root='data/m2nist',\n",
      "        data_prefix=dict(img_path='images/test/', seg_map_path='masks/test/'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='PackSegInputs')\n",
      "        ],\n",
      "        ann_file='test.txt'))\n",
      "val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])\n",
      "test_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])\n",
      "default_scope = 'mmseg'\n",
      "env_cfg = dict(\n",
      "    cudnn_benchmark=True,\n",
      "    mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),\n",
      "    dist_cfg=dict(backend='nccl'))\n",
      "vis_backends = [dict(type='LocalVisBackend')]\n",
      "visualizer = dict(\n",
      "    type='SegLocalVisualizer',\n",
      "    vis_backends=[dict(type='LocalVisBackend')],\n",
      "    name='visualizer')\n",
      "log_processor = dict(by_epoch=False)\n",
      "log_level = 'INFO'\n",
      "load_from = 'deeplabv3_unet_s5-d16_ce-1.0-dice-3.0_64x64_40k_drive_20211210_201825-6bf0efd7.pth'\n",
      "resume = False\n",
      "tta_model = dict(type='SegTTAModel')\n",
      "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n",
      "optim_wrapper = dict(\n",
      "    type='OptimWrapper',\n",
      "    optimizer=dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005),\n",
      "    clip_grad=None)\n",
      "param_scheduler = [\n",
      "    dict(\n",
      "        type='PolyLR',\n",
      "        eta_min=0.0001,\n",
      "        power=0.9,\n",
      "        begin=0,\n",
      "        end=40000,\n",
      "        by_epoch=False)\n",
      "]\n",
      "train_cfg = dict(type='IterBasedTrainLoop', max_iters=300, val_interval=50)\n",
      "val_cfg = dict(type='ValLoop')\n",
      "test_cfg = dict(type='TestLoop')\n",
      "default_hooks = dict(\n",
      "    timer=dict(type='IterTimerHook'),\n",
      "    logger=dict(type='LoggerHook', interval=10, log_metric_by_epoch=False),\n",
      "    param_scheduler=dict(type='ParamSchedulerHook'),\n",
      "    checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=100),\n",
      "    sampler_seed=dict(type='DistSamplerSeedHook'),\n",
      "    visualization=dict(type='SegVisualizationHook'))\n",
      "work_dir = './work_dirs/m2nist2'\n",
      "randomness = dict(seed=0)\n",
      "optimzer = dict(type='Adam', lr=0.0001, momentum=0.9, weight_decay=0.0005)\n",
      "\n",
      "02/15 02:48:03 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"visualizer\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:03 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"vis_backend\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:03 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"model\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/cine/mmsegmentation/mmseg/models/backbones/resnet.py:431: UserWarning: DeprecationWarning: pretrained is a deprecated, please use \"init_cfg\" instead\n",
      "  warnings.warn('DeprecationWarning: pretrained is a deprecated, '\n",
      "/home/cine/mmsegmentation/mmseg/models/decode_heads/decode_head.py:120: UserWarning: For binary segmentation, we suggest using`out_channels = 1` to define the outputchannels of segmentor, and use `threshold`to convert `seg_logits` into a predictionapplying a threshold\n",
      "  warnings.warn('For binary segmentation, we suggest using'\n",
      "/home/cine/mmsegmentation/mmseg/models/builder.py:36: UserWarning: ``build_loss`` would be deprecated soon, please use ``mmseg.registry.MODELS.build()`` \n",
      "  warnings.warn('``build_loss`` would be deprecated soon, please use '\n",
      "/home/cine/mmsegmentation/mmseg/models/losses/cross_entropy_loss.py:235: UserWarning: Default ``avg_non_ignore`` is False, if you would like to ignore the certain label and average loss over non-ignore labels, which is the same with PyTorch official cross_entropy, set ``avg_non_ignore=True``.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "02/15 02:48:04 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Distributed training is not used, all SyncBatchNorm (SyncBN) layers in the model will be automatically reverted to BatchNormXd layers if they are used.\n",
      "02/15 02:48:04 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"hook\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:04 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Hooks will be executed in the following order:\n",
      "before_run:\n",
      "(VERY_HIGH   ) RuntimeInfoHook                    \n",
      "(BELOW_NORMAL) LoggerHook                         \n",
      " -------------------- \n",
      "before_train:\n",
      "(VERY_HIGH   ) RuntimeInfoHook                    \n",
      "(NORMAL      ) IterTimerHook                      \n",
      "(VERY_LOW    ) CheckpointHook                     \n",
      " -------------------- \n",
      "before_train_epoch:\n",
      "(VERY_HIGH   ) RuntimeInfoHook                    \n",
      "(NORMAL      ) IterTimerHook                      \n",
      "(NORMAL      ) DistSamplerSeedHook                \n",
      " -------------------- \n",
      "before_train_iter:\n",
      "(VERY_HIGH   ) RuntimeInfoHook                    \n",
      "(NORMAL      ) IterTimerHook                      \n",
      " -------------------- \n",
      "after_train_iter:\n",
      "(VERY_HIGH   ) RuntimeInfoHook                    \n",
      "(NORMAL      ) IterTimerHook                      \n",
      "(NORMAL      ) SegVisualizationHook               \n",
      "(BELOW_NORMAL) LoggerHook                         \n",
      "(LOW         ) ParamSchedulerHook                 \n",
      "(VERY_LOW    ) CheckpointHook                     \n",
      " -------------------- \n",
      "after_train_epoch:\n",
      "(NORMAL      ) IterTimerHook                      \n",
      "(LOW         ) ParamSchedulerHook                 \n",
      "(VERY_LOW    ) CheckpointHook                     \n",
      " -------------------- \n",
      "before_val_epoch:\n",
      "(NORMAL      ) IterTimerHook                      \n",
      " -------------------- \n",
      "before_val_iter:\n",
      "(NORMAL      ) IterTimerHook                      \n",
      " -------------------- \n",
      "after_val_iter:\n",
      "(NORMAL      ) IterTimerHook                      \n",
      "(NORMAL      ) SegVisualizationHook               \n",
      "(BELOW_NORMAL) LoggerHook                         \n",
      " -------------------- \n",
      "after_val_epoch:\n",
      "(VERY_HIGH   ) RuntimeInfoHook                    \n",
      "(NORMAL      ) IterTimerHook                      \n",
      "(BELOW_NORMAL) LoggerHook                         \n",
      "(LOW         ) ParamSchedulerHook                 \n",
      "(VERY_LOW    ) CheckpointHook                     \n",
      " -------------------- \n",
      "before_test_epoch:\n",
      "(NORMAL      ) IterTimerHook                      \n",
      " -------------------- \n",
      "before_test_iter:\n",
      "(NORMAL      ) IterTimerHook                      \n",
      " -------------------- \n",
      "after_test_iter:\n",
      "(NORMAL      ) IterTimerHook                      \n",
      "(NORMAL      ) SegVisualizationHook               \n",
      "(BELOW_NORMAL) LoggerHook                         \n",
      " -------------------- \n",
      "after_test_epoch:\n",
      "(VERY_HIGH   ) RuntimeInfoHook                    \n",
      "(NORMAL      ) IterTimerHook                      \n",
      "(BELOW_NORMAL) LoggerHook                         \n",
      " -------------------- \n",
      "after_run:\n",
      "(BELOW_NORMAL) LoggerHook                         \n",
      " -------------------- \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/cine/mmsegmentation/mmseg/engine/hooks/visualization_hook.py:61: UserWarning: The draw is False, it means that the hook for visualization will not take effect. The results will NOT be visualized or stored.\n",
      "  warnings.warn('The draw is False, it means that the '\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "02/15 02:48:04 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"loop\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:04 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"dataset\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:04 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"transform\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:04 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"data sampler\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:04 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"optimizer wrapper constructor\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:04 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"optimizer\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:04 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"optim_wrapper\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:04 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"parameter scheduler\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:04 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"metric\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/cine/miniconda3/envs/mmlab2/lib/python3.8/site-packages/mmengine/evaluator/metric.py:47: UserWarning: The prefix is not set in metric class IoUMetric.\n",
      "  warnings.warn('The prefix is not set in metric class '\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "02/15 02:48:05 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The \"weight initializer\" registry in mmseg did not set import location. Fallback to call `mmseg.utils.register_all_modules` instead.\n",
      "02/15 02:48:05 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - load model from: open-mmlab://resnet50_v1c\n",
      "02/15 02:48:05 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Loads checkpoint by openmmlab backend from path: open-mmlab://resnet50_v1c\n",
      "02/15 02:48:05 - mmengine - \u001B[5m\u001B[4m\u001B[33mWARNING\u001B[0m - The model and loaded state dict do not match exactly\n",
      "\n",
      "unexpected key in source state_dict: fc.weight, fc.bias\n",
      "\n",
      "Loads checkpoint by local backend from path: deeplabv3_unet_s5-d16_ce-1.0-dice-3.0_64x64_40k_drive_20211210_201825-6bf0efd7.pth\n",
      "The model and loaded state dict do not match exactly\n",
      "\n",
      "size mismatch for decode_head.conv_seg.weight: copying a param with shape torch.Size([2, 16, 1, 1]) from checkpoint, the shape in current model is torch.Size([2, 512, 1, 1]).\n",
      "size mismatch for decode_head.bottleneck.conv.weight: copying a param with shape torch.Size([16, 80, 3, 3]) from checkpoint, the shape in current model is torch.Size([512, 4096, 3, 3]).\n",
      "size mismatch for decode_head.bottleneck.bn.weight: copying a param with shape torch.Size([16]) from checkpoint, the shape in current model is torch.Size([512]).\n",
      "size mismatch for decode_head.bottleneck.bn.bias: copying a param with shape torch.Size([16]) from checkpoint, the shape in current model is torch.Size([512]).\n",
      "size mismatch for decode_head.bottleneck.bn.running_mean: copying a param with shape torch.Size([16]) from checkpoint, the shape in current model is torch.Size([512]).\n",
      "size mismatch for decode_head.bottleneck.bn.running_var: copying a param with shape torch.Size([16]) from checkpoint, the shape in current model is torch.Size([512]).\n",
      "size mismatch for auxiliary_head.conv_seg.weight: copying a param with shape torch.Size([2, 64, 1, 1]) from checkpoint, the shape in current model is torch.Size([2, 256, 1, 1]).\n",
      "size mismatch for auxiliary_head.convs.0.conv.weight: copying a param with shape torch.Size([64, 128, 3, 3]) from checkpoint, the shape in current model is torch.Size([256, 1024, 3, 3]).\n",
      "size mismatch for auxiliary_head.convs.0.bn.weight: copying a param with shape torch.Size([64]) from checkpoint, the shape in current model is torch.Size([256]).\n",
      "size mismatch for auxiliary_head.convs.0.bn.bias: copying a param with shape torch.Size([64]) from checkpoint, the shape in current model is torch.Size([256]).\n",
      "size mismatch for auxiliary_head.convs.0.bn.running_mean: copying a param with shape torch.Size([64]) from checkpoint, the shape in current model is torch.Size([256]).\n",
      "size mismatch for auxiliary_head.convs.0.bn.running_var: copying a param with shape torch.Size([64]) from checkpoint, the shape in current model is torch.Size([256]).\n",
      "unexpected key in source state_dict: backbone.encoder.0.0.convs.0.conv.weight, backbone.encoder.0.0.convs.0.bn.weight, backbone.encoder.0.0.convs.0.bn.bias, backbone.encoder.0.0.convs.0.bn.running_mean, backbone.encoder.0.0.convs.0.bn.running_var, backbone.encoder.0.0.convs.0.bn.num_batches_tracked, backbone.encoder.0.0.convs.1.conv.weight, backbone.encoder.0.0.convs.1.bn.weight, backbone.encoder.0.0.convs.1.bn.bias, backbone.encoder.0.0.convs.1.bn.running_mean, backbone.encoder.0.0.convs.1.bn.running_var, backbone.encoder.0.0.convs.1.bn.num_batches_tracked, backbone.encoder.1.1.convs.0.conv.weight, backbone.encoder.1.1.convs.0.bn.weight, backbone.encoder.1.1.convs.0.bn.bias, backbone.encoder.1.1.convs.0.bn.running_mean, backbone.encoder.1.1.convs.0.bn.running_var, backbone.encoder.1.1.convs.0.bn.num_batches_tracked, backbone.encoder.1.1.convs.1.conv.weight, backbone.encoder.1.1.convs.1.bn.weight, backbone.encoder.1.1.convs.1.bn.bias, backbone.encoder.1.1.convs.1.bn.running_mean, backbone.encoder.1.1.convs.1.bn.running_var, backbone.encoder.1.1.convs.1.bn.num_batches_tracked, backbone.encoder.2.1.convs.0.conv.weight, backbone.encoder.2.1.convs.0.bn.weight, backbone.encoder.2.1.convs.0.bn.bias, backbone.encoder.2.1.convs.0.bn.running_mean, backbone.encoder.2.1.convs.0.bn.running_var, backbone.encoder.2.1.convs.0.bn.num_batches_tracked, backbone.encoder.2.1.convs.1.conv.weight, backbone.encoder.2.1.convs.1.bn.weight, backbone.encoder.2.1.convs.1.bn.bias, backbone.encoder.2.1.convs.1.bn.running_mean, backbone.encoder.2.1.convs.1.bn.running_var, backbone.encoder.2.1.convs.1.bn.num_batches_tracked, backbone.encoder.3.1.convs.0.conv.weight, backbone.encoder.3.1.convs.0.bn.weight, backbone.encoder.3.1.convs.0.bn.bias, backbone.encoder.3.1.convs.0.bn.running_mean, backbone.encoder.3.1.convs.0.bn.running_var, backbone.encoder.3.1.convs.0.bn.num_batches_tracked, backbone.encoder.3.1.convs.1.conv.weight, backbone.encoder.3.1.convs.1.bn.weight, backbone.encoder.3.1.convs.1.bn.bias, backbone.encoder.3.1.convs.1.bn.running_mean, backbone.encoder.3.1.convs.1.bn.running_var, backbone.encoder.3.1.convs.1.bn.num_batches_tracked, backbone.encoder.4.1.convs.0.conv.weight, backbone.encoder.4.1.convs.0.bn.weight, backbone.encoder.4.1.convs.0.bn.bias, backbone.encoder.4.1.convs.0.bn.running_mean, backbone.encoder.4.1.convs.0.bn.running_var, backbone.encoder.4.1.convs.0.bn.num_batches_tracked, backbone.encoder.4.1.convs.1.conv.weight, backbone.encoder.4.1.convs.1.bn.weight, backbone.encoder.4.1.convs.1.bn.bias, backbone.encoder.4.1.convs.1.bn.running_mean, backbone.encoder.4.1.convs.1.bn.running_var, backbone.encoder.4.1.convs.1.bn.num_batches_tracked, backbone.decoder.0.conv_block.convs.0.conv.weight, backbone.decoder.0.conv_block.convs.0.bn.weight, backbone.decoder.0.conv_block.convs.0.bn.bias, backbone.decoder.0.conv_block.convs.0.bn.running_mean, backbone.decoder.0.conv_block.convs.0.bn.running_var, backbone.decoder.0.conv_block.convs.0.bn.num_batches_tracked, backbone.decoder.0.conv_block.convs.1.conv.weight, backbone.decoder.0.conv_block.convs.1.bn.weight, backbone.decoder.0.conv_block.convs.1.bn.bias, backbone.decoder.0.conv_block.convs.1.bn.running_mean, backbone.decoder.0.conv_block.convs.1.bn.running_var, backbone.decoder.0.conv_block.convs.1.bn.num_batches_tracked, backbone.decoder.0.upsample.interp_upsample.1.conv.weight, backbone.decoder.0.upsample.interp_upsample.1.bn.weight, backbone.decoder.0.upsample.interp_upsample.1.bn.bias, backbone.decoder.0.upsample.interp_upsample.1.bn.running_mean, backbone.decoder.0.upsample.interp_upsample.1.bn.running_var, backbone.decoder.0.upsample.interp_upsample.1.bn.num_batches_tracked, backbone.decoder.1.conv_block.convs.0.conv.weight, backbone.decoder.1.conv_block.convs.0.bn.weight, backbone.decoder.1.conv_block.convs.0.bn.bias, backbone.decoder.1.conv_block.convs.0.bn.running_mean, backbone.decoder.1.conv_block.convs.0.bn.running_var, backbone.decoder.1.conv_block.convs.0.bn.num_batches_tracked, backbone.decoder.1.conv_block.convs.1.conv.weight, backbone.decoder.1.conv_block.convs.1.bn.weight, backbone.decoder.1.conv_block.convs.1.bn.bias, backbone.decoder.1.conv_block.convs.1.bn.running_mean, backbone.decoder.1.conv_block.convs.1.bn.running_var, backbone.decoder.1.conv_block.convs.1.bn.num_batches_tracked, backbone.decoder.1.upsample.interp_upsample.1.conv.weight, backbone.decoder.1.upsample.interp_upsample.1.bn.weight, backbone.decoder.1.upsample.interp_upsample.1.bn.bias, backbone.decoder.1.upsample.interp_upsample.1.bn.running_mean, backbone.decoder.1.upsample.interp_upsample.1.bn.running_var, backbone.decoder.1.upsample.interp_upsample.1.bn.num_batches_tracked, backbone.decoder.2.conv_block.convs.0.conv.weight, backbone.decoder.2.conv_block.convs.0.bn.weight, backbone.decoder.2.conv_block.convs.0.bn.bias, backbone.decoder.2.conv_block.convs.0.bn.running_mean, backbone.decoder.2.conv_block.convs.0.bn.running_var, backbone.decoder.2.conv_block.convs.0.bn.num_batches_tracked, backbone.decoder.2.conv_block.convs.1.conv.weight, backbone.decoder.2.conv_block.convs.1.bn.weight, backbone.decoder.2.conv_block.convs.1.bn.bias, backbone.decoder.2.conv_block.convs.1.bn.running_mean, backbone.decoder.2.conv_block.convs.1.bn.running_var, backbone.decoder.2.conv_block.convs.1.bn.num_batches_tracked, backbone.decoder.2.upsample.interp_upsample.1.conv.weight, backbone.decoder.2.upsample.interp_upsample.1.bn.weight, backbone.decoder.2.upsample.interp_upsample.1.bn.bias, backbone.decoder.2.upsample.interp_upsample.1.bn.running_mean, backbone.decoder.2.upsample.interp_upsample.1.bn.running_var, backbone.decoder.2.upsample.interp_upsample.1.bn.num_batches_tracked, backbone.decoder.3.conv_block.convs.0.conv.weight, backbone.decoder.3.conv_block.convs.0.bn.weight, backbone.decoder.3.conv_block.convs.0.bn.bias, backbone.decoder.3.conv_block.convs.0.bn.running_mean, backbone.decoder.3.conv_block.convs.0.bn.running_var, backbone.decoder.3.conv_block.convs.0.bn.num_batches_tracked, backbone.decoder.3.conv_block.convs.1.conv.weight, backbone.decoder.3.conv_block.convs.1.bn.weight, backbone.decoder.3.conv_block.convs.1.bn.bias, backbone.decoder.3.conv_block.convs.1.bn.running_mean, backbone.decoder.3.conv_block.convs.1.bn.running_var, backbone.decoder.3.conv_block.convs.1.bn.num_batches_tracked, backbone.decoder.3.upsample.interp_upsample.1.conv.weight, backbone.decoder.3.upsample.interp_upsample.1.bn.weight, backbone.decoder.3.upsample.interp_upsample.1.bn.bias, backbone.decoder.3.upsample.interp_upsample.1.bn.running_mean, backbone.decoder.3.upsample.interp_upsample.1.bn.running_var, backbone.decoder.3.upsample.interp_upsample.1.bn.num_batches_tracked, decode_head.image_pool.1.conv.weight, decode_head.image_pool.1.bn.weight, decode_head.image_pool.1.bn.bias, decode_head.image_pool.1.bn.running_mean, decode_head.image_pool.1.bn.running_var, decode_head.image_pool.1.bn.num_batches_tracked, decode_head.aspp_modules.0.conv.weight, decode_head.aspp_modules.0.bn.weight, decode_head.aspp_modules.0.bn.bias, decode_head.aspp_modules.0.bn.running_mean, decode_head.aspp_modules.0.bn.running_var, decode_head.aspp_modules.0.bn.num_batches_tracked, decode_head.aspp_modules.1.conv.weight, decode_head.aspp_modules.1.bn.weight, decode_head.aspp_modules.1.bn.bias, decode_head.aspp_modules.1.bn.running_mean, decode_head.aspp_modules.1.bn.running_var, decode_head.aspp_modules.1.bn.num_batches_tracked, decode_head.aspp_modules.2.conv.weight, decode_head.aspp_modules.2.bn.weight, decode_head.aspp_modules.2.bn.bias, decode_head.aspp_modules.2.bn.running_mean, decode_head.aspp_modules.2.bn.running_var, decode_head.aspp_modules.2.bn.num_batches_tracked, decode_head.aspp_modules.3.conv.weight, decode_head.aspp_modules.3.bn.weight, decode_head.aspp_modules.3.bn.bias, decode_head.aspp_modules.3.bn.running_mean, decode_head.aspp_modules.3.bn.running_var, decode_head.aspp_modules.3.bn.num_batches_tracked\n",
      "\n",
      "missing keys in source state_dict: backbone.stem.0.weight, backbone.stem.1.weight, backbone.stem.1.bias, backbone.stem.1.running_mean, backbone.stem.1.running_var, backbone.stem.3.weight, backbone.stem.4.weight, backbone.stem.4.bias, backbone.stem.4.running_mean, backbone.stem.4.running_var, backbone.stem.6.weight, backbone.stem.7.weight, backbone.stem.7.bias, backbone.stem.7.running_mean, backbone.stem.7.running_var, backbone.layer1.0.conv1.weight, backbone.layer1.0.bn1.weight, backbone.layer1.0.bn1.bias, backbone.layer1.0.bn1.running_mean, backbone.layer1.0.bn1.running_var, backbone.layer1.0.conv2.weight, backbone.layer1.0.bn2.weight, backbone.layer1.0.bn2.bias, backbone.layer1.0.bn2.running_mean, backbone.layer1.0.bn2.running_var, backbone.layer1.0.conv3.weight, backbone.layer1.0.bn3.weight, backbone.layer1.0.bn3.bias, backbone.layer1.0.bn3.running_mean, backbone.layer1.0.bn3.running_var, backbone.layer1.0.downsample.0.weight, backbone.layer1.0.downsample.1.weight, backbone.layer1.0.downsample.1.bias, backbone.layer1.0.downsample.1.running_mean, backbone.layer1.0.downsample.1.running_var, backbone.layer1.1.conv1.weight, backbone.layer1.1.bn1.weight, backbone.layer1.1.bn1.bias, backbone.layer1.1.bn1.running_mean, backbone.layer1.1.bn1.running_var, backbone.layer1.1.conv2.weight, backbone.layer1.1.bn2.weight, backbone.layer1.1.bn2.bias, backbone.layer1.1.bn2.running_mean, backbone.layer1.1.bn2.running_var, backbone.layer1.1.conv3.weight, backbone.layer1.1.bn3.weight, backbone.layer1.1.bn3.bias, backbone.layer1.1.bn3.running_mean, backbone.layer1.1.bn3.running_var, backbone.layer1.2.conv1.weight, backbone.layer1.2.bn1.weight, backbone.layer1.2.bn1.bias, backbone.layer1.2.bn1.running_mean, backbone.layer1.2.bn1.running_var, backbone.layer1.2.conv2.weight, backbone.layer1.2.bn2.weight, backbone.layer1.2.bn2.bias, backbone.layer1.2.bn2.running_mean, backbone.layer1.2.bn2.running_var, backbone.layer1.2.conv3.weight, backbone.layer1.2.bn3.weight, backbone.layer1.2.bn3.bias, backbone.layer1.2.bn3.running_mean, backbone.layer1.2.bn3.running_var, backbone.layer2.0.conv1.weight, backbone.layer2.0.bn1.weight, backbone.layer2.0.bn1.bias, backbone.layer2.0.bn1.running_mean, backbone.layer2.0.bn1.running_var, backbone.layer2.0.conv2.weight, backbone.layer2.0.bn2.weight, backbone.layer2.0.bn2.bias, backbone.layer2.0.bn2.running_mean, backbone.layer2.0.bn2.running_var, backbone.layer2.0.conv3.weight, backbone.layer2.0.bn3.weight, backbone.layer2.0.bn3.bias, backbone.layer2.0.bn3.running_mean, backbone.layer2.0.bn3.running_var, backbone.layer2.0.downsample.0.weight, backbone.layer2.0.downsample.1.weight, backbone.layer2.0.downsample.1.bias, backbone.layer2.0.downsample.1.running_mean, backbone.layer2.0.downsample.1.running_var, backbone.layer2.1.conv1.weight, backbone.layer2.1.bn1.weight, backbone.layer2.1.bn1.bias, backbone.layer2.1.bn1.running_mean, backbone.layer2.1.bn1.running_var, backbone.layer2.1.conv2.weight, backbone.layer2.1.bn2.weight, backbone.layer2.1.bn2.bias, backbone.layer2.1.bn2.running_mean, backbone.layer2.1.bn2.running_var, backbone.layer2.1.conv3.weight, backbone.layer2.1.bn3.weight, backbone.layer2.1.bn3.bias, backbone.layer2.1.bn3.running_mean, backbone.layer2.1.bn3.running_var, backbone.layer2.2.conv1.weight, backbone.layer2.2.bn1.weight, backbone.layer2.2.bn1.bias, backbone.layer2.2.bn1.running_mean, backbone.layer2.2.bn1.running_var, backbone.layer2.2.conv2.weight, backbone.layer2.2.bn2.weight, backbone.layer2.2.bn2.bias, backbone.layer2.2.bn2.running_mean, backbone.layer2.2.bn2.running_var, backbone.layer2.2.conv3.weight, backbone.layer2.2.bn3.weight, backbone.layer2.2.bn3.bias, backbone.layer2.2.bn3.running_mean, backbone.layer2.2.bn3.running_var, backbone.layer2.3.conv1.weight, backbone.layer2.3.bn1.weight, backbone.layer2.3.bn1.bias, backbone.layer2.3.bn1.running_mean, backbone.layer2.3.bn1.running_var, backbone.layer2.3.conv2.weight, backbone.layer2.3.bn2.weight, backbone.layer2.3.bn2.bias, backbone.layer2.3.bn2.running_mean, backbone.layer2.3.bn2.running_var, backbone.layer2.3.conv3.weight, backbone.layer2.3.bn3.weight, backbone.layer2.3.bn3.bias, backbone.layer2.3.bn3.running_mean, backbone.layer2.3.bn3.running_var, backbone.layer3.0.conv1.weight, backbone.layer3.0.bn1.weight, backbone.layer3.0.bn1.bias, backbone.layer3.0.bn1.running_mean, backbone.layer3.0.bn1.running_var, backbone.layer3.0.conv2.weight, backbone.layer3.0.bn2.weight, backbone.layer3.0.bn2.bias, backbone.layer3.0.bn2.running_mean, backbone.layer3.0.bn2.running_var, backbone.layer3.0.conv3.weight, backbone.layer3.0.bn3.weight, backbone.layer3.0.bn3.bias, backbone.layer3.0.bn3.running_mean, backbone.layer3.0.bn3.running_var, backbone.layer3.0.downsample.0.weight, backbone.layer3.0.downsample.1.weight, backbone.layer3.0.downsample.1.bias, backbone.layer3.0.downsample.1.running_mean, backbone.layer3.0.downsample.1.running_var, backbone.layer3.1.conv1.weight, backbone.layer3.1.bn1.weight, backbone.layer3.1.bn1.bias, backbone.layer3.1.bn1.running_mean, backbone.layer3.1.bn1.running_var, backbone.layer3.1.conv2.weight, backbone.layer3.1.bn2.weight, backbone.layer3.1.bn2.bias, backbone.layer3.1.bn2.running_mean, backbone.layer3.1.bn2.running_var, backbone.layer3.1.conv3.weight, backbone.layer3.1.bn3.weight, backbone.layer3.1.bn3.bias, backbone.layer3.1.bn3.running_mean, backbone.layer3.1.bn3.running_var, backbone.layer3.2.conv1.weight, backbone.layer3.2.bn1.weight, backbone.layer3.2.bn1.bias, backbone.layer3.2.bn1.running_mean, backbone.layer3.2.bn1.running_var, backbone.layer3.2.conv2.weight, backbone.layer3.2.bn2.weight, backbone.layer3.2.bn2.bias, backbone.layer3.2.bn2.running_mean, backbone.layer3.2.bn2.running_var, backbone.layer3.2.conv3.weight, backbone.layer3.2.bn3.weight, backbone.layer3.2.bn3.bias, backbone.layer3.2.bn3.running_mean, backbone.layer3.2.bn3.running_var, backbone.layer3.3.conv1.weight, backbone.layer3.3.bn1.weight, backbone.layer3.3.bn1.bias, backbone.layer3.3.bn1.running_mean, backbone.layer3.3.bn1.running_var, backbone.layer3.3.conv2.weight, backbone.layer3.3.bn2.weight, backbone.layer3.3.bn2.bias, backbone.layer3.3.bn2.running_mean, backbone.layer3.3.bn2.running_var, backbone.layer3.3.conv3.weight, backbone.layer3.3.bn3.weight, backbone.layer3.3.bn3.bias, backbone.layer3.3.bn3.running_mean, backbone.layer3.3.bn3.running_var, backbone.layer3.4.conv1.weight, backbone.layer3.4.bn1.weight, backbone.layer3.4.bn1.bias, backbone.layer3.4.bn1.running_mean, backbone.layer3.4.bn1.running_var, backbone.layer3.4.conv2.weight, backbone.layer3.4.bn2.weight, backbone.layer3.4.bn2.bias, backbone.layer3.4.bn2.running_mean, backbone.layer3.4.bn2.running_var, backbone.layer3.4.conv3.weight, backbone.layer3.4.bn3.weight, backbone.layer3.4.bn3.bias, backbone.layer3.4.bn3.running_mean, backbone.layer3.4.bn3.running_var, backbone.layer3.5.conv1.weight, backbone.layer3.5.bn1.weight, backbone.layer3.5.bn1.bias, backbone.layer3.5.bn1.running_mean, backbone.layer3.5.bn1.running_var, backbone.layer3.5.conv2.weight, backbone.layer3.5.bn2.weight, backbone.layer3.5.bn2.bias, backbone.layer3.5.bn2.running_mean, backbone.layer3.5.bn2.running_var, backbone.layer3.5.conv3.weight, backbone.layer3.5.bn3.weight, backbone.layer3.5.bn3.bias, backbone.layer3.5.bn3.running_mean, backbone.layer3.5.bn3.running_var, backbone.layer4.0.conv1.weight, backbone.layer4.0.bn1.weight, backbone.layer4.0.bn1.bias, backbone.layer4.0.bn1.running_mean, backbone.layer4.0.bn1.running_var, backbone.layer4.0.conv2.weight, backbone.layer4.0.bn2.weight, backbone.layer4.0.bn2.bias, backbone.layer4.0.bn2.running_mean, backbone.layer4.0.bn2.running_var, backbone.layer4.0.conv3.weight, backbone.layer4.0.bn3.weight, backbone.layer4.0.bn3.bias, backbone.layer4.0.bn3.running_mean, backbone.layer4.0.bn3.running_var, backbone.layer4.0.downsample.0.weight, backbone.layer4.0.downsample.1.weight, backbone.layer4.0.downsample.1.bias, backbone.layer4.0.downsample.1.running_mean, backbone.layer4.0.downsample.1.running_var, backbone.layer4.1.conv1.weight, backbone.layer4.1.bn1.weight, backbone.layer4.1.bn1.bias, backbone.layer4.1.bn1.running_mean, backbone.layer4.1.bn1.running_var, backbone.layer4.1.conv2.weight, backbone.layer4.1.bn2.weight, backbone.layer4.1.bn2.bias, backbone.layer4.1.bn2.running_mean, backbone.layer4.1.bn2.running_var, backbone.layer4.1.conv3.weight, backbone.layer4.1.bn3.weight, backbone.layer4.1.bn3.bias, backbone.layer4.1.bn3.running_mean, backbone.layer4.1.bn3.running_var, backbone.layer4.2.conv1.weight, backbone.layer4.2.bn1.weight, backbone.layer4.2.bn1.bias, backbone.layer4.2.bn1.running_mean, backbone.layer4.2.bn1.running_var, backbone.layer4.2.conv2.weight, backbone.layer4.2.bn2.weight, backbone.layer4.2.bn2.bias, backbone.layer4.2.bn2.running_mean, backbone.layer4.2.bn2.running_var, backbone.layer4.2.conv3.weight, backbone.layer4.2.bn3.weight, backbone.layer4.2.bn3.bias, backbone.layer4.2.bn3.running_mean, backbone.layer4.2.bn3.running_var, decode_head.psp_modules.0.1.conv.weight, decode_head.psp_modules.0.1.bn.weight, decode_head.psp_modules.0.1.bn.bias, decode_head.psp_modules.0.1.bn.running_mean, decode_head.psp_modules.0.1.bn.running_var, decode_head.psp_modules.1.1.conv.weight, decode_head.psp_modules.1.1.bn.weight, decode_head.psp_modules.1.1.bn.bias, decode_head.psp_modules.1.1.bn.running_mean, decode_head.psp_modules.1.1.bn.running_var, decode_head.psp_modules.2.1.conv.weight, decode_head.psp_modules.2.1.bn.weight, decode_head.psp_modules.2.1.bn.bias, decode_head.psp_modules.2.1.bn.running_mean, decode_head.psp_modules.2.1.bn.running_var, decode_head.psp_modules.3.1.conv.weight, decode_head.psp_modules.3.1.bn.weight, decode_head.psp_modules.3.1.bn.bias, decode_head.psp_modules.3.1.bn.running_mean, decode_head.psp_modules.3.1.bn.running_var\n",
      "\n",
      "02/15 02:48:05 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Load checkpoint from deeplabv3_unet_s5-d16_ce-1.0-dice-3.0_64x64_40k_drive_20211210_201825-6bf0efd7.pth\n",
      "02/15 02:48:05 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Checkpoints will be saved to /home/cine/mmsegmentation/work_dirs/m2nist2.\n",
      "02/15 02:48:17 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [ 10/300]  lr: 9.9980e-03  eta: 0:05:28  time: 1.1339  data_time: 0.0080  loss: 0.0600  decode.loss_ce: 0.0500  decode.acc_seg: 97.7459  aux.loss_ce: 0.0100  aux.acc_seg: 96.7213\n",
      "02/15 02:48:28 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [ 20/300]  lr: 9.9958e-03  eta: 0:05:18  time: 1.1407  data_time: 0.0075  loss: 0.0090  decode.loss_ce: 0.0036  decode.acc_seg: 100.0000  aux.loss_ce: 0.0054  aux.acc_seg: 100.0000\n",
      "02/15 02:48:40 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [ 30/300]  lr: 9.9935e-03  eta: 0:05:09  time: 1.1599  data_time: 0.0064  loss: 0.0029  decode.loss_ce: 0.0004  decode.acc_seg: 100.0000  aux.loss_ce: 0.0024  aux.acc_seg: 100.0000\n",
      "02/15 02:48:51 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [ 40/300]  lr: 9.9913e-03  eta: 0:04:55  time: 1.1146  data_time: 0.0090  loss: 0.0015  decode.loss_ce: 0.0002  decode.acc_seg: 100.0000  aux.loss_ce: 0.0013  aux.acc_seg: 100.0000\n",
      "02/15 02:49:01 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [ 50/300]  lr: 9.9891e-03  eta: 0:04:40  time: 1.0584  data_time: 0.0064  loss: 0.0011  decode.loss_ce: 0.0002  decode.acc_seg: 100.0000  aux.loss_ce: 0.0010  aux.acc_seg: 100.0000\n",
      "02/15 02:49:02 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 10/185]    eta: 0:00:13  time: 0.0756  data_time: 0.0153  \n",
      "02/15 02:49:03 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 20/185]    eta: 0:00:11  time: 0.0587  data_time: 0.0012  \n",
      "02/15 02:49:03 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 30/185]    eta: 0:00:09  time: 0.0587  data_time: 0.0011  \n",
      "02/15 02:49:04 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 40/185]    eta: 0:00:09  time: 0.0588  data_time: 0.0011  \n",
      "02/15 02:49:05 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 50/185]    eta: 0:00:08  time: 0.0588  data_time: 0.0011  \n",
      "02/15 02:49:05 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 60/185]    eta: 0:00:07  time: 0.0592  data_time: 0.0011  \n",
      "02/15 02:49:06 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 70/185]    eta: 0:00:07  time: 0.0616  data_time: 0.0011  \n",
      "02/15 02:49:06 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 80/185]    eta: 0:00:06  time: 0.0597  data_time: 0.0011  \n",
      "02/15 02:49:07 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 90/185]    eta: 0:00:05  time: 0.0595  data_time: 0.0012  \n",
      "02/15 02:49:08 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [100/185]    eta: 0:00:05  time: 0.0589  data_time: 0.0012  \n",
      "02/15 02:49:08 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [110/185]    eta: 0:00:04  time: 0.0594  data_time: 0.0011  \n",
      "02/15 02:49:09 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [120/185]    eta: 0:00:03  time: 0.0591  data_time: 0.0011  \n",
      "02/15 02:49:09 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [130/185]    eta: 0:00:03  time: 0.0601  data_time: 0.0011  \n",
      "02/15 02:49:10 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [140/185]    eta: 0:00:02  time: 0.0595  data_time: 0.0012  \n",
      "02/15 02:49:11 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [150/185]    eta: 0:00:02  time: 0.0618  data_time: 0.0013  \n",
      "02/15 02:49:11 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [160/185]    eta: 0:00:01  time: 0.0606  data_time: 0.0014  \n",
      "02/15 02:49:12 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [170/185]    eta: 0:00:00  time: 0.0591  data_time: 0.0012  \n",
      "02/15 02:49:12 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [180/185]    eta: 0:00:00  time: 0.0610  data_time: 0.0013  \n",
      "02/15 02:49:13 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - per class results:\n",
      "02/15 02:49:13 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - \n",
      "+------------+-------+-------+\n",
      "|   Class    |  IoU  |  Acc  |\n",
      "+------------+-------+-------+\n",
      "| background | 100.0 | 100.0 |\n",
      "|   digits   |  nan  |  nan  |\n",
      "+------------+-------+-------+\n",
      "02/15 02:49:13 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [185/185]  aAcc: 100.0000  mIoU: 100.0000  mAcc: 100.0000\n",
      "02/15 02:49:23 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [ 60/300]  lr: 9.9869e-03  eta: 0:04:26  time: 1.0670  data_time: 0.0072  loss: 0.0008  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0007  aux.acc_seg: 100.0000\n",
      "02/15 02:49:34 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [ 70/300]  lr: 9.9846e-03  eta: 0:04:15  time: 1.0897  data_time: 0.0059  loss: 0.0007  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0006  aux.acc_seg: 100.0000\n",
      "02/15 02:49:45 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [ 80/300]  lr: 9.9824e-03  eta: 0:04:03  time: 1.0875  data_time: 0.0060  loss: 0.0006  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0005  aux.acc_seg: 100.0000\n",
      "02/15 02:49:56 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [ 90/300]  lr: 9.9802e-03  eta: 0:03:51  time: 1.0719  data_time: 0.0069  loss: 0.0007  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0005  aux.acc_seg: 100.0000\n",
      "02/15 02:49:59 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Exp name: pspnet_r50-d8_4xb2-40k_cityscapes-512x1024_20230215_024802\n",
      "02/15 02:50:07 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [100/300]  lr: 9.9779e-03  eta: 0:03:40  time: 1.0971  data_time: 0.0076  loss: 0.0006  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0004  aux.acc_seg: 100.0000\n",
      "02/15 02:50:07 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Saving checkpoint at 100 iterations\n",
      "02/15 02:50:08 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 10/185]    eta: 0:00:10  time: 0.0584  data_time: 0.0012  \n",
      "02/15 02:50:09 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 20/185]    eta: 0:00:09  time: 0.0592  data_time: 0.0011  \n",
      "02/15 02:50:10 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 30/185]    eta: 0:00:09  time: 0.0622  data_time: 0.0011  \n",
      "02/15 02:50:10 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 40/185]    eta: 0:00:08  time: 0.0616  data_time: 0.0010  \n",
      "02/15 02:50:11 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 50/185]    eta: 0:00:08  time: 0.0624  data_time: 0.0012  \n",
      "02/15 02:50:11 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 60/185]    eta: 0:00:07  time: 0.0629  data_time: 0.0012  \n",
      "02/15 02:50:12 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 70/185]    eta: 0:00:07  time: 0.0638  data_time: 0.0011  \n",
      "02/15 02:50:13 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 80/185]    eta: 0:00:06  time: 0.0633  data_time: 0.0012  \n",
      "02/15 02:50:13 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 90/185]    eta: 0:00:05  time: 0.0641  data_time: 0.0011  \n",
      "02/15 02:50:14 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [100/185]    eta: 0:00:05  time: 0.0619  data_time: 0.0010  \n",
      "02/15 02:50:15 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [110/185]    eta: 0:00:04  time: 0.0609  data_time: 0.0011  \n",
      "02/15 02:50:15 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [120/185]    eta: 0:00:04  time: 0.0601  data_time: 0.0012  \n",
      "02/15 02:50:16 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [130/185]    eta: 0:00:03  time: 0.0600  data_time: 0.0010  \n",
      "02/15 02:50:16 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [140/185]    eta: 0:00:02  time: 0.0606  data_time: 0.0011  \n",
      "02/15 02:50:17 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [150/185]    eta: 0:00:02  time: 0.0608  data_time: 0.0011  \n",
      "02/15 02:50:18 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [160/185]    eta: 0:00:01  time: 0.0635  data_time: 0.0013  \n",
      "02/15 02:50:18 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [170/185]    eta: 0:00:00  time: 0.0611  data_time: 0.0010  \n",
      "02/15 02:50:19 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [180/185]    eta: 0:00:00  time: 0.0610  data_time: 0.0010  \n",
      "02/15 02:50:19 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - per class results:\n",
      "02/15 02:50:19 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - \n",
      "+------------+-------+-------+\n",
      "|   Class    |  IoU  |  Acc  |\n",
      "+------------+-------+-------+\n",
      "| background | 100.0 | 100.0 |\n",
      "|   digits   |  nan  |  nan  |\n",
      "+------------+-------+-------+\n",
      "02/15 02:50:19 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [185/185]  aAcc: 100.0000  mIoU: 100.0000  mAcc: 100.0000\n",
      "02/15 02:50:30 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [110/300]  lr: 9.9757e-03  eta: 0:03:29  time: 1.0959  data_time: 0.0073  loss: 0.0005  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0004  aux.acc_seg: 100.0000\n",
      "02/15 02:50:41 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [120/300]  lr: 9.9735e-03  eta: 0:03:18  time: 1.1037  data_time: 0.0093  loss: 0.0005  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0004  aux.acc_seg: 100.0000\n",
      "02/15 02:50:52 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [130/300]  lr: 9.9713e-03  eta: 0:03:07  time: 1.1289  data_time: 0.0078  loss: 0.0004  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0003  aux.acc_seg: 100.0000\n",
      "02/15 02:51:05 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [140/300]  lr: 9.9690e-03  eta: 0:02:58  time: 1.2568  data_time: 0.0086  loss: 0.0004  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0003  aux.acc_seg: 100.0000\n",
      "02/15 02:51:16 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [150/300]  lr: 9.9668e-03  eta: 0:02:47  time: 1.1455  data_time: 0.0084  loss: 0.0004  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0003  aux.acc_seg: 100.0000\n",
      "02/15 02:51:17 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 10/185]    eta: 0:00:10  time: 0.0616  data_time: 0.0016  \n",
      "02/15 02:51:18 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 20/185]    eta: 0:00:10  time: 0.0614  data_time: 0.0011  \n",
      "02/15 02:51:18 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 30/185]    eta: 0:00:09  time: 0.0614  data_time: 0.0011  \n",
      "02/15 02:51:19 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 40/185]    eta: 0:00:08  time: 0.0612  data_time: 0.0011  \n",
      "02/15 02:51:20 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 50/185]    eta: 0:00:08  time: 0.0643  data_time: 0.0013  \n",
      "02/15 02:51:20 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 60/185]    eta: 0:00:07  time: 0.0660  data_time: 0.0016  \n",
      "02/15 02:51:22 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 70/185]    eta: 0:00:08  time: 0.1385  data_time: 0.0013  \n",
      "02/15 02:51:22 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 80/185]    eta: 0:00:07  time: 0.0797  data_time: 0.0014  \n",
      "02/15 02:51:23 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 90/185]    eta: 0:00:06  time: 0.0629  data_time: 0.0010  \n",
      "02/15 02:51:24 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [100/185]    eta: 0:00:06  time: 0.0627  data_time: 0.0014  \n",
      "02/15 02:51:24 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [110/185]    eta: 0:00:05  time: 0.0637  data_time: 0.0013  \n",
      "02/15 02:51:25 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [120/185]    eta: 0:00:04  time: 0.0633  data_time: 0.0011  \n",
      "02/15 02:51:26 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [130/185]    eta: 0:00:03  time: 0.0637  data_time: 0.0012  \n",
      "02/15 02:51:26 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [140/185]    eta: 0:00:03  time: 0.0640  data_time: 0.0013  \n",
      "02/15 02:51:27 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [150/185]    eta: 0:00:02  time: 0.0634  data_time: 0.0011  \n",
      "02/15 02:51:27 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [160/185]    eta: 0:00:01  time: 0.0625  data_time: 0.0011  \n",
      "02/15 02:51:28 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [170/185]    eta: 0:00:01  time: 0.0626  data_time: 0.0012  \n",
      "02/15 02:51:29 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [180/185]    eta: 0:00:00  time: 0.0619  data_time: 0.0012  \n",
      "02/15 02:51:29 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - per class results:\n",
      "02/15 02:51:29 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - \n",
      "+------------+-------+-------+\n",
      "|   Class    |  IoU  |  Acc  |\n",
      "+------------+-------+-------+\n",
      "| background | 100.0 | 100.0 |\n",
      "|   digits   |  nan  |  nan  |\n",
      "+------------+-------+-------+\n",
      "02/15 02:51:29 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [185/185]  aAcc: 100.0000  mIoU: 100.0000  mAcc: 100.0000\n",
      "02/15 02:51:40 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [160/300]  lr: 9.9646e-03  eta: 0:02:36  time: 1.0857  data_time: 0.0065  loss: 0.0004  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0003  aux.acc_seg: 100.0000\n",
      "02/15 02:51:51 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [170/300]  lr: 9.9623e-03  eta: 0:02:24  time: 1.0788  data_time: 0.0065  loss: 0.0003  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:52:02 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [180/300]  lr: 9.9601e-03  eta: 0:02:13  time: 1.1044  data_time: 0.0078  loss: 0.0003  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:52:13 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [190/300]  lr: 9.9579e-03  eta: 0:02:02  time: 1.1304  data_time: 0.0069  loss: 0.0004  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0003  aux.acc_seg: 100.0000\n",
      "02/15 02:52:24 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [200/300]  lr: 9.9557e-03  eta: 0:01:51  time: 1.1234  data_time: 0.0084  loss: 0.0003  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:52:24 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Saving checkpoint at 200 iterations\n",
      "02/15 02:52:26 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 10/185]    eta: 0:00:09  time: 0.0555  data_time: 0.0010  \n",
      "02/15 02:52:26 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 20/185]    eta: 0:00:09  time: 0.0607  data_time: 0.0012  \n",
      "02/15 02:52:27 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 30/185]    eta: 0:00:09  time: 0.0623  data_time: 0.0011  \n",
      "02/15 02:52:28 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 40/185]    eta: 0:00:08  time: 0.0617  data_time: 0.0010  \n",
      "02/15 02:52:28 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 50/185]    eta: 0:00:08  time: 0.0634  data_time: 0.0011  \n",
      "02/15 02:52:29 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 60/185]    eta: 0:00:07  time: 0.0618  data_time: 0.0011  \n",
      "02/15 02:52:30 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 70/185]    eta: 0:00:07  time: 0.0620  data_time: 0.0011  \n",
      "02/15 02:52:30 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 80/185]    eta: 0:00:06  time: 0.0610  data_time: 0.0011  \n",
      "02/15 02:52:31 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 90/185]    eta: 0:00:05  time: 0.0611  data_time: 0.0010  \n",
      "02/15 02:52:31 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [100/185]    eta: 0:00:05  time: 0.0626  data_time: 0.0010  \n",
      "02/15 02:52:32 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [110/185]    eta: 0:00:04  time: 0.0621  data_time: 0.0010  \n",
      "02/15 02:52:33 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [120/185]    eta: 0:00:04  time: 0.0651  data_time: 0.0011  \n",
      "02/15 02:52:33 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [130/185]    eta: 0:00:03  time: 0.0637  data_time: 0.0010  \n",
      "02/15 02:52:34 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [140/185]    eta: 0:00:02  time: 0.0628  data_time: 0.0012  \n",
      "02/15 02:52:35 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [150/185]    eta: 0:00:02  time: 0.0623  data_time: 0.0010  \n",
      "02/15 02:52:35 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [160/185]    eta: 0:00:01  time: 0.0625  data_time: 0.0012  \n",
      "02/15 02:52:36 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [170/185]    eta: 0:00:00  time: 0.0630  data_time: 0.0011  \n",
      "02/15 02:52:36 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [180/185]    eta: 0:00:00  time: 0.0622  data_time: 0.0011  \n",
      "02/15 02:52:37 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - per class results:\n",
      "02/15 02:52:37 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - \n",
      "+------------+-------+-------+\n",
      "|   Class    |  IoU  |  Acc  |\n",
      "+------------+-------+-------+\n",
      "| background | 100.0 | 100.0 |\n",
      "|   digits   |  nan  |  nan  |\n",
      "+------------+-------+-------+\n",
      "02/15 02:52:37 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [185/185]  aAcc: 100.0000  mIoU: 100.0000  mAcc: 100.0000\n",
      "02/15 02:52:48 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [210/300]  lr: 9.9534e-03  eta: 0:01:40  time: 1.1070  data_time: 0.0063  loss: 0.0003  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:52:59 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [220/300]  lr: 9.9512e-03  eta: 0:01:29  time: 1.1133  data_time: 0.0081  loss: 0.0003  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:53:10 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [230/300]  lr: 9.9490e-03  eta: 0:01:17  time: 1.1107  data_time: 0.0084  loss: 0.0003  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:53:21 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [240/300]  lr: 9.9467e-03  eta: 0:01:06  time: 1.0915  data_time: 0.0078  loss: 0.0003  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:53:32 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [250/300]  lr: 9.9445e-03  eta: 0:00:55  time: 1.0812  data_time: 0.0082  loss: 0.0003  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:53:32 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 10/185]    eta: 0:00:10  time: 0.0613  data_time: 0.0012  \n",
      "02/15 02:53:33 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 20/185]    eta: 0:00:10  time: 0.0619  data_time: 0.0012  \n",
      "02/15 02:53:34 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 30/185]    eta: 0:00:09  time: 0.0640  data_time: 0.0013  \n",
      "02/15 02:53:34 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 40/185]    eta: 0:00:09  time: 0.0628  data_time: 0.0011  \n",
      "02/15 02:53:35 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 50/185]    eta: 0:00:08  time: 0.0625  data_time: 0.0012  \n",
      "02/15 02:53:36 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 60/185]    eta: 0:00:07  time: 0.0621  data_time: 0.0011  \n",
      "02/15 02:53:36 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 70/185]    eta: 0:00:07  time: 0.0626  data_time: 0.0012  \n",
      "02/15 02:53:37 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 80/185]    eta: 0:00:06  time: 0.0636  data_time: 0.0012  \n",
      "02/15 02:53:37 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 90/185]    eta: 0:00:05  time: 0.0625  data_time: 0.0012  \n",
      "02/15 02:53:38 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [100/185]    eta: 0:00:05  time: 0.0620  data_time: 0.0011  \n",
      "02/15 02:53:39 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [110/185]    eta: 0:00:04  time: 0.0632  data_time: 0.0011  \n",
      "02/15 02:53:39 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [120/185]    eta: 0:00:04  time: 0.0634  data_time: 0.0011  \n",
      "02/15 02:53:40 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [130/185]    eta: 0:00:03  time: 0.0660  data_time: 0.0013  \n",
      "02/15 02:53:41 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [140/185]    eta: 0:00:02  time: 0.0620  data_time: 0.0012  \n",
      "02/15 02:53:41 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [150/185]    eta: 0:00:02  time: 0.0625  data_time: 0.0011  \n",
      "02/15 02:53:42 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [160/185]    eta: 0:00:01  time: 0.0612  data_time: 0.0011  \n",
      "02/15 02:53:42 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [170/185]    eta: 0:00:00  time: 0.0615  data_time: 0.0012  \n",
      "02/15 02:53:43 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [180/185]    eta: 0:00:00  time: 0.0631  data_time: 0.0011  \n",
      "02/15 02:53:43 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - per class results:\n",
      "02/15 02:53:43 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - \n",
      "+------------+-------+-------+\n",
      "|   Class    |  IoU  |  Acc  |\n",
      "+------------+-------+-------+\n",
      "| background | 100.0 | 100.0 |\n",
      "|   digits   |  nan  |  nan  |\n",
      "+------------+-------+-------+\n",
      "02/15 02:53:43 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [185/185]  aAcc: 100.0000  mIoU: 100.0000  mAcc: 100.0000\n",
      "02/15 02:53:55 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [260/300]  lr: 9.9423e-03  eta: 0:00:44  time: 1.1207  data_time: 0.0075  loss: 0.0002  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:54:06 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [270/300]  lr: 9.9401e-03  eta: 0:00:33  time: 1.1068  data_time: 0.0076  loss: 0.0003  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:54:17 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [280/300]  lr: 9.9378e-03  eta: 0:00:22  time: 1.1055  data_time: 0.0084  loss: 0.0002  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:54:28 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [290/300]  lr: 9.9356e-03  eta: 0:00:11  time: 1.1162  data_time: 0.0059  loss: 0.0002  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:54:39 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(train) [300/300]  lr: 9.9334e-03  eta: 0:00:00  time: 1.1073  data_time: 0.0080  loss: 0.0002  decode.loss_ce: 0.0001  decode.acc_seg: 100.0000  aux.loss_ce: 0.0002  aux.acc_seg: 100.0000\n",
      "02/15 02:54:39 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Saving checkpoint at 300 iterations\n",
      "02/15 02:54:41 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 10/185]    eta: 0:00:09  time: 0.0564  data_time: 0.0013  \n",
      "02/15 02:54:41 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 20/185]    eta: 0:00:09  time: 0.0565  data_time: 0.0012  \n",
      "02/15 02:54:42 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 30/185]    eta: 0:00:08  time: 0.0569  data_time: 0.0011  \n",
      "02/15 02:54:42 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 40/185]    eta: 0:00:08  time: 0.0589  data_time: 0.0011  \n",
      "02/15 02:54:43 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 50/185]    eta: 0:00:07  time: 0.0590  data_time: 0.0011  \n",
      "02/15 02:54:43 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 60/185]    eta: 0:00:07  time: 0.0598  data_time: 0.0012  \n",
      "02/15 02:54:44 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 70/185]    eta: 0:00:06  time: 0.0576  data_time: 0.0012  \n",
      "02/15 02:54:45 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 80/185]    eta: 0:00:06  time: 0.0587  data_time: 0.0011  \n",
      "02/15 02:54:45 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [ 90/185]    eta: 0:00:05  time: 0.0583  data_time: 0.0010  \n",
      "02/15 02:54:46 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [100/185]    eta: 0:00:04  time: 0.0585  data_time: 0.0011  \n",
      "02/15 02:54:46 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [110/185]    eta: 0:00:04  time: 0.0618  data_time: 0.0010  \n",
      "02/15 02:54:47 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [120/185]    eta: 0:00:03  time: 0.0592  data_time: 0.0010  \n",
      "02/15 02:54:48 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [130/185]    eta: 0:00:03  time: 0.0582  data_time: 0.0010  \n",
      "02/15 02:54:48 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [140/185]    eta: 0:00:02  time: 0.0587  data_time: 0.0011  \n",
      "02/15 02:54:49 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [150/185]    eta: 0:00:02  time: 0.0577  data_time: 0.0010  \n",
      "02/15 02:54:49 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [160/185]    eta: 0:00:01  time: 0.0577  data_time: 0.0011  \n",
      "02/15 02:54:50 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [170/185]    eta: 0:00:00  time: 0.0566  data_time: 0.0010  \n",
      "02/15 02:54:50 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [180/185]    eta: 0:00:00  time: 0.0594  data_time: 0.0011  \n",
      "02/15 02:54:51 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - per class results:\n",
      "02/15 02:54:51 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - \n",
      "+------------+-------+-------+\n",
      "|   Class    |  IoU  |  Acc  |\n",
      "+------------+-------+-------+\n",
      "| background | 100.0 | 100.0 |\n",
      "|   digits   |  nan  |  nan  |\n",
      "+------------+-------+-------+\n",
      "02/15 02:54:51 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Iter(val) [185/185]  aAcc: 100.0000  mIoU: 100.0000  mAcc: 100.0000\n"
     ]
    },
    {
     "data": {
      "text/plain": "EncoderDecoder(\n  (data_preprocessor): SegDataPreProcessor()\n  (backbone): ResNetV1c(\n    (stem): Sequential(\n      (0): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n      (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (2): ReLU(inplace=True)\n      (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n      (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (5): ReLU(inplace=True)\n      (6): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n      (7): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (8): ReLU(inplace=True)\n    )\n    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n    (layer1): ResLayer(\n      (0): Bottleneck(\n        (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n        (downsample): Sequential(\n          (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        )\n      )\n      (1): Bottleneck(\n        (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      (2): Bottleneck(\n        (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n    )\n    (layer2): ResLayer(\n      (0): Bottleneck(\n        (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n        (downsample): Sequential(\n          (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n          (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        )\n      )\n      (1): Bottleneck(\n        (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      (2): Bottleneck(\n        (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      (3): Bottleneck(\n        (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n    )\n    (layer3): ResLayer(\n      (0): Bottleneck(\n        (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n        (downsample): Sequential(\n          (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        )\n      )\n      (1): Bottleneck(\n        (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      (2): Bottleneck(\n        (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      (3): Bottleneck(\n        (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      (4): Bottleneck(\n        (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      (5): Bottleneck(\n        (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n    )\n    (layer4): ResLayer(\n      (0): Bottleneck(\n        (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n        (downsample): Sequential(\n          (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        )\n      )\n      (1): Bottleneck(\n        (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(4, 4), dilation=(4, 4), bias=False)\n        (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      (2): Bottleneck(\n        (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(4, 4), dilation=(4, 4), bias=False)\n        (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n    )\n  )\n  init_cfg={'type': 'Pretrained', 'checkpoint': 'open-mmlab://resnet50_v1c'}\n  (decode_head): PSPHead(\n    input_transform=None, ignore_index=255, align_corners=False\n    (loss_decode): CrossEntropyLoss(avg_non_ignore=False)\n    (conv_seg): Conv2d(512, 2, kernel_size=(1, 1), stride=(1, 1))\n    (dropout): Dropout2d(p=0.1, inplace=False)\n    (psp_modules): PPM(\n      (0): Sequential(\n        (0): AdaptiveAvgPool2d(output_size=1)\n        (1): ConvModule(\n          (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n          (activate): ReLU(inplace=True)\n        )\n      )\n      (1): Sequential(\n        (0): AdaptiveAvgPool2d(output_size=2)\n        (1): ConvModule(\n          (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n          (activate): ReLU(inplace=True)\n        )\n      )\n      (2): Sequential(\n        (0): AdaptiveAvgPool2d(output_size=3)\n        (1): ConvModule(\n          (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n          (activate): ReLU(inplace=True)\n        )\n      )\n      (3): Sequential(\n        (0): AdaptiveAvgPool2d(output_size=6)\n        (1): ConvModule(\n          (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n          (activate): ReLU(inplace=True)\n        )\n      )\n    )\n    (bottleneck): ConvModule(\n      (conv): Conv2d(4096, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n      (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (activate): ReLU(inplace=True)\n    )\n  )\n  init_cfg={'type': 'Normal', 'std': 0.01, 'override': {'name': 'conv_seg'}}\n  (auxiliary_head): FCNHead(\n    input_transform=None, ignore_index=255, align_corners=False\n    (loss_decode): CrossEntropyLoss(avg_non_ignore=False)\n    (conv_seg): Conv2d(256, 2, kernel_size=(1, 1), stride=(1, 1))\n    (dropout): Dropout2d(p=0.1, inplace=False)\n    (convs): Sequential(\n      (0): ConvModule(\n        (conv): Conv2d(1024, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (activate): ReLU(inplace=True)\n      )\n    )\n  )\n  init_cfg={'type': 'Normal', 'std': 0.01, 'override': {'name': 'conv_seg'}}\n)"
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from mmengine.runner import Runner\n",
    "from mmseg.utils import register_all_modules\n",
    "# from mmseg.datasets import m2nist\n",
    "\n",
    "# register all modules in mmseg into the registries\n",
    "# do not init the default scope here because it will be init in the runner\n",
    "register_all_modules(init_default_scope=False)\n",
    "runner = Runner.from_cfg(cfg)\n",
    "\n",
    "runner.train()  # FileNotFoundError: [Errno 2]\n",
    "# No such file or directory: 'data/m2nist/images/1984_0_5_5.png'"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "outputs": [],
   "source": [
    "# !python tools/train.py m2nist_cfg.py"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "02/15 03:13:30 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - \n",
      "------------------------------------------------------------\n",
      "System environment:\n",
      "    sys.platform: linux\n",
      "    Python: 3.8.16 (default, Jan 17 2023, 23:13:24) [GCC 11.2.0]\n",
      "    CUDA available: False\n",
      "    numpy_random_seed: 0\n",
      "    GCC: gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0\n",
      "    PyTorch: 1.10.1+cu113\n",
      "    PyTorch compiling details: PyTorch built with:\n",
      "  - GCC 7.3\n",
      "  - C++ Version: 201402\n",
      "  - Intel(R) oneAPI Math Kernel Library Version 2021.4-Product Build 20210904 for Intel(R) 64 architecture applications\n",
      "  - Intel(R) MKL-DNN v2.2.3 (Git Hash 7336ca9f055cf1bfa13efb658fe15dc9b41f0740)\n",
      "  - OpenMP 201511 (a.k.a. OpenMP 4.5)\n",
      "  - LAPACK is enabled (usually provided by MKL)\n",
      "  - NNPACK is enabled\n",
      "  - CPU capability usage: AVX2\n",
      "  - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.2.0, CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.10.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, \n",
      "\n",
      "    TorchVision: 0.11.2+cu113\n",
      "    OpenCV: 4.7.0\n",
      "    MMEngine: 0.5.0\n",
      "\n",
      "Runtime environment:\n",
      "    cudnn_benchmark: True\n",
      "    mp_cfg: {'mp_start_method': 'fork', 'opencv_num_threads': 0}\n",
      "    dist_cfg: {'backend': 'nccl'}\n",
      "    seed: 0\n",
      "    Distributed launcher: none\n",
      "    Distributed training: False\n",
      "    GPU number: 1\n",
      "------------------------------------------------------------\n",
      "\n",
      "02/15 03:13:30 - mmengine - \u001B[4m\u001B[97mINFO\u001B[0m - Config:\n",
      "norm_cfg = dict(type='BN', requires_grad=True)\n",
      "data_preprocessor = dict(\n",
      "    type='SegDataPreProcessor',\n",
      "    mean=[123.675, 116.28, 103.53],\n",
      "    std=[58.395, 57.12, 57.375],\n",
      "    bgr_to_rgb=True,\n",
      "    pad_val=0,\n",
      "    seg_pad_val=255,\n",
      "    size=(512, 1024))\n",
      "model = dict(\n",
      "    type='EncoderDecoder',\n",
      "    data_preprocessor=dict(\n",
      "        type='SegDataPreProcessor',\n",
      "        mean=[11.61565, 11.61565, 11.61565],\n",
      "        std=[49.230198, 49.230198, 49.230198],\n",
      "        bgr_to_rgb=True,\n",
      "        pad_val=0,\n",
      "        seg_pad_val=255,\n",
      "        size=(84, 64)),\n",
      "    pretrained='open-mmlab://resnet50_v1c',\n",
      "    backbone=dict(\n",
      "        type='ResNetV1c',\n",
      "        depth=50,\n",
      "        num_stages=4,\n",
      "        out_indices=(0, 1, 2, 3),\n",
      "        dilations=(1, 1, 2, 4),\n",
      "        strides=(1, 2, 1, 1),\n",
      "        norm_cfg=dict(type='BN', requires_grad=True),\n",
      "        norm_eval=False,\n",
      "        style='pytorch',\n",
      "        contract_dilation=True),\n",
      "    decode_head=dict(\n",
      "        type='PSPHead',\n",
      "        in_channels=2048,\n",
      "        in_index=3,\n",
      "        channels=512,\n",
      "        pool_scales=(1, 2, 3, 6),\n",
      "        dropout_ratio=0.1,\n",
      "        num_classes=2,\n",
      "        norm_cfg=dict(type='BN', requires_grad=True),\n",
      "        align_corners=False,\n",
      "        loss_decode=dict(\n",
      "            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),\n",
      "    auxiliary_head=dict(\n",
      "        type='FCNHead',\n",
      "        in_channels=1024,\n",
      "        in_index=2,\n",
      "        channels=256,\n",
      "        num_convs=1,\n",
      "        concat_input=False,\n",
      "        dropout_ratio=0.1,\n",
      "        num_classes=2,\n",
      "        norm_cfg=dict(type='BN', requires_grad=True),\n",
      "        align_corners=False,\n",
      "        loss_decode=dict(\n",
      "            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=0.4)),\n",
      "    train_cfg=dict(),\n",
      "    test_cfg=dict(mode='whole'))\n",
      "dataset_type = 'M2nistDataset'\n",
      "data_root = 'data/m2nist'\n",
      "crop_size = (84, 64)\n",
      "train_pipeline = [\n",
      "    dict(type='LoadImageFromFile'),\n",
      "    dict(type='LoadAnnotations'),\n",
      "    dict(type='RandomCrop', crop_size=(84, 64), cat_max_ratio=0.75),\n",
      "    dict(type='RandomFlip', prob=0.5),\n",
      "    dict(type='PackSegInputs')\n",
      "]\n",
      "test_pipeline = [\n",
      "    dict(type='LoadImageFromFile'),\n",
      "    dict(type='LoadAnnotations'),\n",
      "    dict(type='PackSegInputs')\n",
      "]\n",
      "img_ratios = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75]\n",
      "tta_pipeline = [\n",
      "    dict(type='LoadImageFromFile', file_client_args=dict(backend='disk')),\n",
      "    dict(\n",
      "        type='TestTimeAug',\n",
      "        transforms=[[{\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 0.5,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 0.75,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.0,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.25,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.5,\n",
      "            'keep_ratio': True\n",
      "        }, {\n",
      "            'type': 'Resize',\n",
      "            'scale_factor': 1.75,\n",
      "            'keep_ratio': True\n",
      "        }],\n",
      "                    [{\n",
      "                        'type': 'RandomFlip',\n",
      "                        'prob': 0.0,\n",
      "                        'direction': 'horizontal'\n",
      "                    }, {\n",
      "                        'type': 'RandomFlip',\n",
      "                        'prob': 1.0,\n",
      "                        'direction': 'horizontal'\n",
      "                    }], [{\n",
      "                        'type': 'LoadAnnotations'\n",
      "                    }], [{\n",
      "                        'type': 'PackSegInputs'\n",
      "                    }]])\n",
      "]\n",
      "train_dataloader = dict(\n",
      "    batch_size=8,\n",
      "    num_workers=2,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='InfiniteSampler', shuffle=True),\n",
      "    dataset=dict(\n",
      "        type='M2nistDataset',\n",
      "        data_root='data/m2nist',\n",
      "        data_prefix=dict(img_path='images/train', seg_map_path='masks/train'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='RandomCrop', crop_size=(84, 64), cat_max_ratio=0.75),\n",
      "            dict(type='RandomFlip', prob=0.5),\n",
      "            dict(type='PackSegInputs')\n",
      "        ],\n",
      "        ann_file='train.txt'))\n",
      "val_dataloader = dict(\n",
      "    batch_size=1,\n",
      "    num_workers=4,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='DefaultSampler', shuffle=False),\n",
      "    dataset=dict(\n",
      "        type='M2nistDataset',\n",
      "        data_root='data/m2nist',\n",
      "        data_prefix=dict(img_path='images/test/', seg_map_path='masks/test/'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='PackSegInputs')\n",
      "        ],\n",
      "        ann_file='test.txt'))\n",
      "test_dataloader = dict(\n",
      "    batch_size=1,\n",
      "    num_workers=4,\n",
      "    persistent_workers=True,\n",
      "    sampler=dict(type='DefaultSampler', shuffle=False),\n",
      "    dataset=dict(\n",
      "        type='M2nistDataset',\n",
      "        data_root='data/m2nist',\n",
      "        data_prefix=dict(img_path='images/test/', seg_map_path='masks/test/'),\n",
      "        pipeline=[\n",
      "            dict(type='LoadImageFromFile'),\n",
      "            dict(type='LoadAnnotations'),\n",
      "            dict(type='PackSegInputs')\n",
      "        ],\n",
      "        ann_file='test.txt'))\n",
      "val_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])\n",
      "test_evaluator = dict(type='IoUMetric', iou_metrics=['mIoU'])\n",
      "default_scope = 'mmseg'\n",
      "env_cfg = dict(\n",
      "    cudnn_benchmark=True,\n",
      "    mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),\n",
      "    dist_cfg=dict(backend='nccl'))\n",
      "vis_backends = [dict(type='LocalVisBackend')]\n",
      "visualizer = dict(\n",
      "    type='SegLocalVisualizer',\n",
      "    vis_backends=[dict(type='LocalVisBackend')],\n",
      "    name='visualizer')\n",
      "log_processor = dict(by_epoch=False)\n",
      "log_level = 'INFO'\n",
      "load_from = 'deeplabv3_unet_s5-d16_ce-1.0-dice-3.0_64x64_40k_drive_20211210_201825-6bf0efd7.pth'\n",
      "resume = False\n",
      "tta_model = dict(type='SegTTAModel')\n",
      "optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\n",
      "optim_wrapper = dict(\n",
      "    type='OptimWrapper',\n",
      "    optimizer=dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005),\n",
      "    clip_grad=None)\n",
      "param_scheduler = [\n",
      "    dict(\n",
      "        type='PolyLR',\n",
      "        eta_min=0.0001,\n",
      "        power=0.9,\n",
      "        begin=0,\n",
      "        end=40000,\n",
      "        by_epoch=False)\n",
      "]\n",
      "train_cfg = dict(type='IterBasedTrainLoop', max_iters=300, val_interval=50)\n",
      "val_cfg = dict(type='ValLoop')\n",
      "test_cfg = dict(type='TestLoop')\n",
      "default_hooks = dict(\n",
      "    timer=dict(type='IterTimerHook'),\n",
      "    logger=dict(type='LoggerHook', interval=10, log_metric_by_epoch=False),\n",
      "    param_scheduler=dict(type='ParamSchedulerHook'),\n",
      "    checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=100),\n",
      "    sampler_seed=dict(type='DistSamplerSeedHook'),\n",
      "    visualization=dict(type='SegVisualizationHook'))\n",
      "work_dir = './work_dirs/m2nist2'\n",
      "randomness = dict(seed=0)\n",
      "optimzer = dict(type='Adam', lr=0.0001, momentum=0.9, weight_decay=0.0005)\n",
      "\n"
     ]
    },
    {
     "ename": "AssertionError",
     "evalue": "class `SegLocalVisualizer` in mmseg/visualization/local_visualizer.py: <class 'mmseg.visualization.local_visualizer.SegLocalVisualizer'> instance named of visualizer has been created, the method `get_instance` should not access any other arguments",
     "output_type": "error",
     "traceback": [
      "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
      "\u001B[0;31mAssertionError\u001B[0m                            Traceback (most recent call last)",
      "File \u001B[0;32m~/miniconda3/envs/mmlab2/lib/python3.8/site-packages/mmengine/registry/build_functions.py:119\u001B[0m, in \u001B[0;36mbuild_from_cfg\u001B[0;34m(cfg, registry, default_args)\u001B[0m\n\u001B[1;32m    117\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m inspect\u001B[38;5;241m.\u001B[39misclass(obj_cls) \u001B[38;5;129;01mand\u001B[39;00m \\\n\u001B[1;32m    118\u001B[0m         \u001B[38;5;28missubclass\u001B[39m(obj_cls, ManagerMixin):  \u001B[38;5;66;03m# type: ignore\u001B[39;00m\n\u001B[0;32m--> 119\u001B[0m     obj \u001B[38;5;241m=\u001B[39m \u001B[43mobj_cls\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget_instance\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43margs\u001B[49m\u001B[43m)\u001B[49m  \u001B[38;5;66;03m# type: ignore\u001B[39;00m\n\u001B[1;32m    120\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n",
      "File \u001B[0;32m~/miniconda3/envs/mmlab2/lib/python3.8/site-packages/mmengine/visualization/visualizer.py:1131\u001B[0m, in \u001B[0;36mVisualizer.get_instance\u001B[0;34m(cls, name, **kwargs)\u001B[0m\n\u001B[1;32m   1101\u001B[0m \u001B[38;5;250m\u001B[39m\u001B[38;5;124;03m\"\"\"Make subclass can get latest created instance by\u001B[39;00m\n\u001B[1;32m   1102\u001B[0m \u001B[38;5;124;03m``Visualizer.get_current_instance()``.\u001B[39;00m\n\u001B[1;32m   1103\u001B[0m \n\u001B[0;32m   (...)\u001B[0m\n\u001B[1;32m   1129\u001B[0m \u001B[38;5;124;03m    object: Corresponding name instance.\u001B[39;00m\n\u001B[1;32m   1130\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[0;32m-> 1131\u001B[0m instance \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43msuper\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget_instance\u001B[49m\u001B[43m(\u001B[49m\u001B[43mname\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m   1132\u001B[0m Visualizer\u001B[38;5;241m.\u001B[39m_instance_dict[name] \u001B[38;5;241m=\u001B[39m instance\n",
      "File \u001B[0;32m~/miniconda3/envs/mmlab2/lib/python3.8/site-packages/mmengine/utils/manager.py:112\u001B[0m, in \u001B[0;36mManagerMixin.get_instance\u001B[0;34m(cls, name, **kwargs)\u001B[0m\n\u001B[1;32m    111\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[0;32m--> 112\u001B[0m     \u001B[38;5;28;01massert\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m kwargs, (\n\u001B[1;32m    113\u001B[0m         \u001B[38;5;124mf\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;132;01m{\u001B[39;00m\u001B[38;5;28mcls\u001B[39m\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m instance named of \u001B[39m\u001B[38;5;132;01m{\u001B[39;00mname\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m has been created, the method \u001B[39m\u001B[38;5;124m'\u001B[39m\n\u001B[1;32m    114\u001B[0m         \u001B[38;5;124m'\u001B[39m\u001B[38;5;124m`get_instance` should not access any other arguments\u001B[39m\u001B[38;5;124m'\u001B[39m)\n\u001B[1;32m    115\u001B[0m \u001B[38;5;66;03m# Get latest instantiated instance or root instance.\u001B[39;00m\n",
      "\u001B[0;31mAssertionError\u001B[0m: <class 'mmseg.visualization.local_visualizer.SegLocalVisualizer'> instance named of visualizer has been created, the method `get_instance` should not access any other arguments",
      "\nDuring handling of the above exception, another exception occurred:\n",
      "\u001B[0;31mAssertionError\u001B[0m                            Traceback (most recent call last)",
      "Cell \u001B[0;32mIn[19], line 8\u001B[0m\n\u001B[1;32m      6\u001B[0m cfg \u001B[38;5;241m=\u001B[39m Config\u001B[38;5;241m.\u001B[39mfromfile(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mm2nist_cfg.py\u001B[39m\u001B[38;5;124m'\u001B[39m)\n\u001B[1;32m      7\u001B[0m register_all_modules(init_default_scope\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mFalse\u001B[39;00m)\n\u001B[0;32m----> 8\u001B[0m runner \u001B[38;5;241m=\u001B[39m \u001B[43mRunner\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mfrom_cfg\u001B[49m\u001B[43m(\u001B[49m\u001B[43mcfg\u001B[49m\u001B[43m)\u001B[49m\n",
      "File \u001B[0;32m~/miniconda3/envs/mmlab2/lib/python3.8/site-packages/mmengine/runner/runner.py:431\u001B[0m, in \u001B[0;36mRunner.from_cfg\u001B[0;34m(cls, cfg)\u001B[0m\n\u001B[1;32m    421\u001B[0m \u001B[38;5;250m\u001B[39m\u001B[38;5;124;03m\"\"\"Build a runner from config.\u001B[39;00m\n\u001B[1;32m    422\u001B[0m \n\u001B[1;32m    423\u001B[0m \u001B[38;5;124;03mArgs:\u001B[39;00m\n\u001B[0;32m   (...)\u001B[0m\n\u001B[1;32m    428\u001B[0m \u001B[38;5;124;03m    Runner: A runner build from ``cfg``.\u001B[39;00m\n\u001B[1;32m    429\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m    430\u001B[0m cfg \u001B[38;5;241m=\u001B[39m copy\u001B[38;5;241m.\u001B[39mdeepcopy(cfg)\n\u001B[0;32m--> 431\u001B[0m runner \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mcls\u001B[39;49m\u001B[43m(\u001B[49m\n\u001B[1;32m    432\u001B[0m \u001B[43m    \u001B[49m\u001B[43mmodel\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mmodel\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    433\u001B[0m \u001B[43m    \u001B[49m\u001B[43mwork_dir\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mwork_dir\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    434\u001B[0m \u001B[43m    \u001B[49m\u001B[43mtrain_dataloader\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mtrain_dataloader\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    435\u001B[0m \u001B[43m    \u001B[49m\u001B[43mval_dataloader\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mval_dataloader\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    436\u001B[0m \u001B[43m    \u001B[49m\u001B[43mtest_dataloader\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mtest_dataloader\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    437\u001B[0m \u001B[43m    \u001B[49m\u001B[43mtrain_cfg\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mtrain_cfg\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    438\u001B[0m \u001B[43m    \u001B[49m\u001B[43mval_cfg\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mval_cfg\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    439\u001B[0m \u001B[43m    \u001B[49m\u001B[43mtest_cfg\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mtest_cfg\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    440\u001B[0m \u001B[43m    \u001B[49m\u001B[43mauto_scale_lr\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mauto_scale_lr\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    441\u001B[0m \u001B[43m    \u001B[49m\u001B[43moptim_wrapper\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43moptim_wrapper\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    442\u001B[0m \u001B[43m    \u001B[49m\u001B[43mparam_scheduler\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mparam_scheduler\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    443\u001B[0m \u001B[43m    \u001B[49m\u001B[43mval_evaluator\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mval_evaluator\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    444\u001B[0m \u001B[43m    \u001B[49m\u001B[43mtest_evaluator\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mtest_evaluator\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    445\u001B[0m \u001B[43m    \u001B[49m\u001B[43mdefault_hooks\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mdefault_hooks\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    446\u001B[0m \u001B[43m    \u001B[49m\u001B[43mcustom_hooks\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mcustom_hooks\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    447\u001B[0m \u001B[43m    \u001B[49m\u001B[43mdata_preprocessor\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mdata_preprocessor\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    448\u001B[0m \u001B[43m    \u001B[49m\u001B[43mload_from\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mload_from\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    449\u001B[0m \u001B[43m    \u001B[49m\u001B[43mresume\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mresume\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    450\u001B[0m \u001B[43m    \u001B[49m\u001B[43mlauncher\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mlauncher\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mnone\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    451\u001B[0m \u001B[43m    \u001B[49m\u001B[43menv_cfg\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43menv_cfg\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\u001B[43m  \u001B[49m\u001B[38;5;66;43;03m# type: ignore\u001B[39;49;00m\n\u001B[1;32m    452\u001B[0m \u001B[43m    \u001B[49m\u001B[43mlog_processor\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mlog_processor\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    453\u001B[0m \u001B[43m    \u001B[49m\u001B[43mlog_level\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mlog_level\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mINFO\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    454\u001B[0m \u001B[43m    \u001B[49m\u001B[43mvisualizer\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mvisualizer\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    455\u001B[0m \u001B[43m    \u001B[49m\u001B[43mdefault_scope\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mdefault_scope\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mmmengine\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    456\u001B[0m \u001B[43m    \u001B[49m\u001B[43mrandomness\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mrandomness\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43mdict\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43mseed\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;28;43;01mNone\u001B[39;49;00m\u001B[43m)\u001B[49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    457\u001B[0m \u001B[43m    \u001B[49m\u001B[43mexperiment_name\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mget\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mexperiment_name\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    458\u001B[0m \u001B[43m    \u001B[49m\u001B[43mcfg\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcfg\u001B[49m\u001B[43m,\u001B[49m\n\u001B[1;32m    459\u001B[0m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m    461\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m runner\n",
      "File \u001B[0;32m~/miniconda3/envs/mmlab2/lib/python3.8/site-packages/mmengine/runner/runner.py:385\u001B[0m, in \u001B[0;36mRunner.__init__\u001B[0;34m(self, model, work_dir, train_dataloader, val_dataloader, test_dataloader, train_cfg, val_cfg, test_cfg, auto_scale_lr, optim_wrapper, param_scheduler, val_evaluator, test_evaluator, default_hooks, custom_hooks, data_preprocessor, load_from, resume, launcher, env_cfg, log_processor, log_level, visualizer, default_scope, randomness, experiment_name, cfg)\u001B[0m\n\u001B[1;32m    383\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mmessage_hub \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mbuild_message_hub()\n\u001B[1;32m    384\u001B[0m \u001B[38;5;66;03m# visualizer used for writing log or visualizing all kinds of data\u001B[39;00m\n\u001B[0;32m--> 385\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mvisualizer \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mbuild_visualizer\u001B[49m\u001B[43m(\u001B[49m\u001B[43mvisualizer\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m    386\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mcfg:\n\u001B[1;32m    387\u001B[0m     \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mvisualizer\u001B[38;5;241m.\u001B[39madd_config(\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mcfg)\n",
      "File \u001B[0;32m~/miniconda3/envs/mmlab2/lib/python3.8/site-packages/mmengine/runner/runner.py:767\u001B[0m, in \u001B[0;36mRunner.build_visualizer\u001B[0;34m(self, visualizer)\u001B[0m\n\u001B[1;32m    765\u001B[0m     visualizer\u001B[38;5;241m.\u001B[39msetdefault(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mname\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_experiment_name)\n\u001B[1;32m    766\u001B[0m     visualizer\u001B[38;5;241m.\u001B[39msetdefault(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124msave_dir\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_log_dir)\n\u001B[0;32m--> 767\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[43mVISUALIZERS\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mbuild\u001B[49m\u001B[43m(\u001B[49m\u001B[43mvisualizer\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m    768\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m    769\u001B[0m     \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mTypeError\u001B[39;00m(\n\u001B[1;32m    770\u001B[0m         \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mvisualizer should be Visualizer object, a dict or None, \u001B[39m\u001B[38;5;124m'\u001B[39m\n\u001B[1;32m    771\u001B[0m         \u001B[38;5;124mf\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mbut got \u001B[39m\u001B[38;5;132;01m{\u001B[39;00mvisualizer\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m'\u001B[39m)\n",
      "File \u001B[0;32m~/miniconda3/envs/mmlab2/lib/python3.8/site-packages/mmengine/registry/registry.py:521\u001B[0m, in \u001B[0;36mRegistry.build\u001B[0;34m(self, cfg, *args, **kwargs)\u001B[0m\n\u001B[1;32m    499\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mbuild\u001B[39m(\u001B[38;5;28mself\u001B[39m, cfg: \u001B[38;5;28mdict\u001B[39m, \u001B[38;5;241m*\u001B[39margs, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m Any:\n\u001B[1;32m    500\u001B[0m \u001B[38;5;250m    \u001B[39m\u001B[38;5;124;03m\"\"\"Build an instance.\u001B[39;00m\n\u001B[1;32m    501\u001B[0m \n\u001B[1;32m    502\u001B[0m \u001B[38;5;124;03m    Build an instance by calling :attr:`build_func`.\u001B[39;00m\n\u001B[0;32m   (...)\u001B[0m\n\u001B[1;32m    519\u001B[0m \u001B[38;5;124;03m        >>> model = MODELS.build(cfg)\u001B[39;00m\n\u001B[1;32m    520\u001B[0m \u001B[38;5;124;03m    \"\"\"\u001B[39;00m\n\u001B[0;32m--> 521\u001B[0m     \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mbuild_func\u001B[49m\u001B[43m(\u001B[49m\u001B[43mcfg\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43margs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[38;5;241;43m*\u001B[39;49m\u001B[43mkwargs\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mregistry\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[43m)\u001B[49m\n",
      "File \u001B[0;32m~/miniconda3/envs/mmlab2/lib/python3.8/site-packages/mmengine/registry/build_functions.py:135\u001B[0m, in \u001B[0;36mbuild_from_cfg\u001B[0;34m(cfg, registry, default_args)\u001B[0m\n\u001B[1;32m    131\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m \u001B[38;5;167;01mException\u001B[39;00m \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[1;32m    132\u001B[0m     \u001B[38;5;66;03m# Normal TypeError does not print class name.\u001B[39;00m\n\u001B[1;32m    133\u001B[0m     cls_location \u001B[38;5;241m=\u001B[39m \u001B[38;5;124m'\u001B[39m\u001B[38;5;124m/\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;241m.\u001B[39mjoin(\n\u001B[1;32m    134\u001B[0m         obj_cls\u001B[38;5;241m.\u001B[39m\u001B[38;5;18m__module__\u001B[39m\u001B[38;5;241m.\u001B[39msplit(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124m.\u001B[39m\u001B[38;5;124m'\u001B[39m))  \u001B[38;5;66;03m# type: ignore\u001B[39;00m\n\u001B[0;32m--> 135\u001B[0m     \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;28mtype\u001B[39m(e)(\n\u001B[1;32m    136\u001B[0m         \u001B[38;5;124mf\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mclass `\u001B[39m\u001B[38;5;132;01m{\u001B[39;00mobj_cls\u001B[38;5;241m.\u001B[39m\u001B[38;5;18m__name__\u001B[39m\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m` in \u001B[39m\u001B[38;5;124m'\u001B[39m  \u001B[38;5;66;03m# type: ignore\u001B[39;00m\n\u001B[1;32m    137\u001B[0m         \u001B[38;5;124mf\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;132;01m{\u001B[39;00mcls_location\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m.py: \u001B[39m\u001B[38;5;132;01m{\u001B[39;00me\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m'\u001B[39m)\n",
      "\u001B[0;31mAssertionError\u001B[0m: class `SegLocalVisualizer` in mmseg/visualization/local_visualizer.py: <class 'mmseg.visualization.local_visualizer.SegLocalVisualizer'> instance named of visualizer has been created, the method `get_instance` should not access any other arguments"
     ]
    }
   ],
   "source": [
    "# 载入 config 配置文件\n",
    "from mmengine import Config\n",
    "from mmengine.runner import Runner\n",
    "from mmseg.utils import register_all_modules\n",
    "from mmseg.apis import init_model, inference_model, show_result_pyplot\n",
    "cfg = Config.fromfile('m2nist_cfg.py')\n",
    "register_all_modules(init_default_scope=False)\n",
    "runner = Runner.from_cfg(cfg)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/cine/mmsegmentation/mmseg/models/decode_heads/decode_head.py:120: UserWarning: For binary segmentation, we suggest using`out_channels = 1` to define the outputchannels of segmentor, and use `threshold`to convert `seg_logits` into a predictionapplying a threshold\n",
      "  warnings.warn('For binary segmentation, we suggest using'\n",
      "/home/cine/mmsegmentation/mmseg/models/builder.py:36: UserWarning: ``build_loss`` would be deprecated soon, please use ``mmseg.registry.MODELS.build()`` \n",
      "  warnings.warn('``build_loss`` would be deprecated soon, please use '\n",
      "/home/cine/mmsegmentation/mmseg/models/losses/cross_entropy_loss.py:235: UserWarning: Default ``avg_non_ignore`` is False, if you would like to ignore the certain label and average loss over non-ignore labels, which is the same with PyTorch official cross_entropy, set ``avg_non_ignore=True``.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loads checkpoint by local backend from path: ./work_dirs/m2nist2/iter_300.pth\n"
     ]
    }
   ],
   "source": [
    "# 初始化模型\n",
    "checkpoint_path = './work_dirs/m2nist2/iter_300.pth'\n",
    "model = init_model(cfg, checkpoint_path, 'cpu')"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "outputs": [
    {
     "data": {
      "text/plain": "EncoderDecoder(\n  (data_preprocessor): SegDataPreProcessor()\n  (backbone): ResNetV1c(\n    (stem): Sequential(\n      (0): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n      (1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (2): ReLU(inplace=True)\n      (3): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n      (4): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (5): ReLU(inplace=True)\n      (6): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n      (7): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (8): ReLU(inplace=True)\n    )\n    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)\n    (layer1): ResLayer(\n      (0): Bottleneck(\n        (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n        (downsample): Sequential(\n          (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        )\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (1): Bottleneck(\n        (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (2): Bottleneck(\n        (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n    )\n    (layer2): ResLayer(\n      (0): Bottleneck(\n        (conv1): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n        (downsample): Sequential(\n          (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n          (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        )\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (1): Bottleneck(\n        (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (2): Bottleneck(\n        (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (3): Bottleneck(\n        (conv1): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n    )\n    (layer3): ResLayer(\n      (0): Bottleneck(\n        (conv1): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n        (downsample): Sequential(\n          (0): Conv2d(512, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        )\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (1): Bottleneck(\n        (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (2): Bottleneck(\n        (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (3): Bottleneck(\n        (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (4): Bottleneck(\n        (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (5): Bottleneck(\n        (conv1): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n    )\n    (layer4): ResLayer(\n      (0): Bottleneck(\n        (conv1): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(2, 2), dilation=(2, 2), bias=False)\n        (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n        (downsample): Sequential(\n          (0): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (1): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        )\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (1): Bottleneck(\n        (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(4, 4), dilation=(4, 4), bias=False)\n        (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n      (2): Bottleneck(\n        (conv1): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(4, 4), dilation=(4, 4), bias=False)\n        (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (conv3): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)\n        (bn3): BatchNorm2d(2048, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (relu): ReLU(inplace=True)\n      )\n      init_cfg={'type': 'Constant', 'val': 0, 'override': {'name': 'norm3'}}\n    )\n  )\n  init_cfg=[{'type': 'Kaiming', 'layer': 'Conv2d'}, {'type': 'Constant', 'val': 1, 'layer': ['_BatchNorm', 'GroupNorm']}]\n  (decode_head): PSPHead(\n    input_transform=None, ignore_index=255, align_corners=False\n    (loss_decode): CrossEntropyLoss(avg_non_ignore=False)\n    (conv_seg): Conv2d(512, 2, kernel_size=(1, 1), stride=(1, 1))\n    (dropout): Dropout2d(p=0.1, inplace=False)\n    (psp_modules): PPM(\n      (0): Sequential(\n        (0): AdaptiveAvgPool2d(output_size=1)\n        (1): ConvModule(\n          (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n          (activate): ReLU(inplace=True)\n        )\n      )\n      (1): Sequential(\n        (0): AdaptiveAvgPool2d(output_size=2)\n        (1): ConvModule(\n          (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n          (activate): ReLU(inplace=True)\n        )\n      )\n      (2): Sequential(\n        (0): AdaptiveAvgPool2d(output_size=3)\n        (1): ConvModule(\n          (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n          (activate): ReLU(inplace=True)\n        )\n      )\n      (3): Sequential(\n        (0): AdaptiveAvgPool2d(output_size=6)\n        (1): ConvModule(\n          (conv): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)\n          (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n          (activate): ReLU(inplace=True)\n        )\n      )\n    )\n    (bottleneck): ConvModule(\n      (conv): Conv2d(4096, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n      (bn): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n      (activate): ReLU(inplace=True)\n    )\n  )\n  init_cfg={'type': 'Normal', 'std': 0.01, 'override': {'name': 'conv_seg'}}\n  (auxiliary_head): FCNHead(\n    input_transform=None, ignore_index=255, align_corners=False\n    (loss_decode): CrossEntropyLoss(avg_non_ignore=False)\n    (conv_seg): Conv2d(256, 2, kernel_size=(1, 1), stride=(1, 1))\n    (dropout): Dropout2d(p=0.1, inplace=False)\n    (convs): Sequential(\n      (0): ConvModule(\n        (conv): Conv2d(1024, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n        (bn): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n        (activate): ReLU(inplace=True)\n      )\n    )\n  )\n  init_cfg={'type': 'Normal', 'std': 0.01, 'override': {'name': 'conv_seg'}}\n)"
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "outputs": [],
   "source": [
    "# 单张图像\n",
    "img = mmcv.imread('data/m2nist/images/train/15_0_1_4.png')\n",
    "mask_img = mmcv.imread('data/m2nist/masks/train/15_0_1_4.png')"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "outputs": [
    {
     "data": {
      "text/plain": "['pred_sem_seg', 'seg_logits']"
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result = inference_model(model, img)\n",
    "result.keys()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "outputs": [
    {
     "data": {
      "text/plain": "(64, 84)"
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred_mask = result.pred_sem_seg.data[0].cpu().numpy()\n",
    "pred_mask.shape"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "outputs": [
    {
     "data": {
      "text/plain": "array([0])"
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.unique(pred_mask)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(mask_img)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "原图有三个数字，1,0有掩码，"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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\n"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(img)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "outputs": [
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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8hdz2223maefftpIMuvWrYs4vnjxYuNyucz69evNa6+9Zr7//e+boqIi89FHH8Vn4G4YP368WbVqldmzZ4/ZtWuX+d73vmcKCwvN4cOHw+fccMMNpqCgwNTW1pqdO3ea0aNHm4suuiiOU0fvmWeeMX/+85/N3r17TWNjo7n11ltNWlqa2bNnjzEmOdb4WS+//LI588wzzdChQ83s2bPD+5NhnYsWLTLnn3++OXjwYHh7//33w8eTYY3GGPOf//zHDBgwwFxzzTVm+/bt5p133jGbN282+/fvD5+TDD+DDh06FHEtt2zZYiSZF154wRiTHNfz7rvvNrm5uebZZ581TU1NZu3atSYzM9M88MAD4XPicS0TNihGjRplKisrw18fPXrU5Ofnm+rq6jhOFTufD4quri7j8XjMfffdF97X2tpqnE6n+eMf/xiHCWPj0KFDRpKpq6szxnyyprS0NLN27drwOf/85z+NJFNfXx+vMWOid+/e5ve//33SrbGtrc0MHDjQbNmyxXzrW98KB0WyrHPRokVm2LBhxz2WLGs0xphbbrnFjB079guPJ+vPoNmzZ5uzzz7bdHV1Jc31nDhxornuuusi9k2ZMsVMmzbNGBO/a5mQf/Lo6OhQQ0ODysrKwvtSUlJUVlam+vr6OE524jQ1Ncnn80Ws2eVyqbS09KRecyAQkCTl5ORIkhoaGtTZ2RmxzuLiYhUWFp606zx69Khqamp05MgReb3epFtjZWWlJk6cGLEeKbmu5b59+5Sfn6+zzjpL06ZNU3Nzs6TkWuMzzzyjESNG6IorrlC/fv00fPhwPfLII+HjyfgzqKOjQ0888YSuu+46ORyOpLmeF110kWpra7V3715J0muvvaaXXnpJEyZMkBS/a5lwnzYqSR988IGOHj0qt9sdsd/tduutt96K01Qnls/nk6TjrvnTYyebrq4uzZkzR2PGjNGQIUMkfbLO9PR0ZWdnR5x7Mq5z9+7d8nq9am9vV2ZmptatW6fBgwdr165dSbPGmpoavfLKK9qxY8cxx5LlWpaWlmr16tU677zzdPDgQd155526+OKLtWfPnqRZoyS98847WrFihebNm6dbb71VO3bs0E033aT09HRVVFQk5c+g9evXq7W1Vddcc42k5Plvdv78+QoGgyouLlaPHj109OhR3X333Zo2bZqk+P0+ScigQHKorKzUnj179NJLL8V7lBPivPPO065duxQIBPSnP/1JFRUVqquri/dYMdPS0qLZs2dry5Yt6tmzZ7zHOWE+/b86SRo6dKhKS0s1YMAAPfXUU8rIyIjjZLHV1dWlESNG6J577pEkDR8+XHv27NHKlStVUVER5+lOjEcffVQTJkxQfn5+vEeJqaeeekpPPvmk1qxZo/PPP1+7du3SnDlzlJ+fH9drmZB/8ujTp4969OhxzDNv/X6/PB5PnKY6sT5dV7KseebMmXr22Wf1wgsvqH///uH9Ho9HHR0dam1tjTj/ZFxnenq6zjnnHJWUlKi6ulrDhg3TAw88kDRrbGho0KFDh3ThhRcqNTVVqampqqur07Jly5Samiq3250U6/y87OxsnXvuudq/f3/SXEtJysvL0+DBgyP2DRo0KPznnWT7GfTuu+/qb3/7m37yk5+E9yXL9fzFL36h+fPn68orr9QFF1ygH/3oR5o7d66qq6slxe9aJmRQpKenq6SkRLW1teF9XV1dqq2tldfrjeNkJ05RUZE8Hk/EmoPBoLZv335SrdkYo5kzZ2rdunV6/vnnVVRUFHG8pKREaWlpEetsbGxUc3PzSbXO4+nq6lIoFEqaNY4bN067d+/Wrl27wtuIESM0bdq08L+TYZ2fd/jwYb399tvKy8tLmmspSWPGjDnmJdx79+7VgAEDJCXPz6BPrVq1Sv369dPEiRPD+5Llen744YdKSYn89d2jRw91dXVJiuO1PGFP97RUU1NjnE6nWb16tXnzzTfNjBkzTHZ2tvH5fPEerdva2trMq6++al599VUjydx///3m1VdfNe+++64x5pOX+WRnZ5sNGzaY119/3UyaNOmke8nWjTfeaFwul9m6dWvES7c+/PDD8Dk33HCDKSwsNM8//7zZuXOn8Xq9xuv1xnHq6M2fP9/U1dWZpqYm8/rrr5v58+cbh8Nh/vrXvxpjkmONx/PZV3kYkxzr/NnPfma2bt1qmpqazN///ndTVlZm+vTpYw4dOmSMSY41GvPJS39TU1PN3Xffbfbt22eefPJJc9ppp5knnngifE4y/Awy5pNXBRYWFppbbrnlmGPJcD0rKirMGWecEX7Z6NNPP2369Oljbr755vA58biWCRsUxhjz4IMPmsLCQpOenm5GjRpltm3bFu+RrLzwwgtG0jFbRUWFMeaTl/osWLDAuN1u43Q6zbhx40xjY2N8h47S8dYnyaxatSp8zkcffWR++tOfmt69e5vTTjvN/OAHPzAHDx6M39DdcN1115kBAwaY9PR007dvXzNu3LhwTBiTHGs8ns8HRTKsc+rUqSYvL8+kp6ebM844w0ydOjXivRmSYY2f2rhxoxkyZIhxOp2muLjYPPzwwxHHk+FnkDHGbN682Ug67uzJcD2DwaCZPXu2KSwsND179jRnnXWWue2220woFAqfE49r6TDmM2+tBQAA0A0J+RwKAABwciEoAACANYICAABYIygAAIA1ggIAAFgjKAAAgDWCAgAAWCMoAACANYICAABYIygAAIA1ggIAAFj7f0dsT9TPvV4YAAAAAElFTkSuQmCC\n"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# mask\n",
    "plt.imshow(pred_mask)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "预测结果为全部是背景"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/cine/miniconda3/envs/mmlab2/lib/python3.8/site-packages/mmengine/visualization/visualizer.py:163: UserWarning: `Visualizer` backend is not initialized because save_dir is None.\n",
      "  warnings.warn('`Visualizer` backend is not initialized '\n"
     ]
    },
    {
     "data": {
      "text/plain": "<Figure size 640x480 with 1 Axes>",
      "image/png": "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OBwOrVixQg6HI9SldCj6GTm6Qh8l+hlpukI/u0IfpdD2M+wmZQIAgM4nrEcoAABA50CgAAAA1ggUAADAGoECAABYI1AAAABrYR0oCgsLddFFFykuLk5ZWVl66623Ql2SlZ07d2rq1KlKSUlRVFSUtm7d6rffGKPly5crOTlZ8fHxys7O1uHDh0NTbDsVFBRozJgx6t27twYMGKDp06ersrLS75impibl5eWpX79+6tWrl3JyclRbWxuiittn3bp1GjFihO9udG63W6+88opvfyT08etWrVqlqKgoLVq0yNcWCf289957FRUV5bdlZGT49kdCH7/y6aef6oYbblC/fv0UHx+vK664Qnv37vXtj4T3oIsuuuiM6xkVFaW8vDxJkXE9W1patGzZMqWnpys+Pl6XXHKJfvvb3/o9wCsk19KEqeLiYhMbG2ueeuop8/7775ubb77ZJCYmmtra2lCX1m5//etfzd13322ef/55I8ls2bLFb/+qVauM0+k0W7duNe+++6758Y9/bNLT080XX3wRmoLbYdKkSaaoqMgcOHDA7Nu3z/zoRz8yaWlp5sSJE75jbrnlFpOammpKS0vN3r17zbhx48xVV10VwqoD9+KLL5qXX37ZHDp0yFRWVpq77rrLxMTEmAMHDhhjIqOP/+utt94yF110kRkxYoRZuHChrz0S+rlixQpz+eWXm2PHjvm2zz77zLc/EvpojDH//ve/zaBBg8yNN95odu/ebT766COzfft2c+TIEd8xkfAedPz4cb9r+eqrrxpJ5vXXXzfGRMb1XLlypenXr5956aWXTFVVldm8ebPp1auXeeSRR3zHhOJahm2gGDt2rMnLy/N93dLSYlJSUkxBQUEIqwqerweK1tZWk5SUZB566CFfW11dnXE4HObPf/5zCCoMjuPHjxtJpqyszBjzZZ9iYmLM5s2bfcf885//NJJMeXl5qMoMij59+pg//vGPEdfHxsZGM3jwYPPqq6+a733ve75AESn9XLFihRk5cmSb+yKlj8YYc+edd5qrr776rPsj9T1o4cKF5pJLLjGtra0Rcz2nTJli5syZ49c2Y8YMM3v2bGNM6K5lWH7k0dzcrIqKCmVnZ/vaoqOjlZ2drfLy8hBW1nGqqqrk8Xj8+ux0OpWVldWp+1xfXy9J6tu3rySpoqJCp0+f9utnRkaG0tLSOm0/W1pa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\n"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化预测结果\n",
    "visualization = show_result_pyplot(model, img, result, opacity=0.7, out_file='pred.jpg')\n",
    "plt.imshow(mmcv.bgr2rgb(visualization))\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 预测结果不好就不进行连通域分析了\n",
    "\n",
    "调整了几次，结果都不好，时间不太够了，后面再慢慢做一下，出问题的原因分析如下\n",
    "\n",
    "1. crop的部分太小，丢失主体，所以后面取消了crop和resize，但是还是效果不好\n",
    "2. 可能是resize造成的，模型本来的输入较大，这里输入是84x64的图片，可能最后学到的feature不够，后面再采用resize试试\n",
    "3. 模型太大，层数太大，训练不够，但是现在loss出现了nan的问题，不太清楚是什么导致的\n",
    "4. 对于采用的两种模型不够熟悉，后面再尝试用其他模型多多尝试，\n",
    "\n",
    "\n",
    "# 模型部署\n",
    "\n",
    "此处实验不理想，时间有限，就搜集一些文档资料吧\n",
    "\n",
    "1. win10下mmsegmentation的安装训练以及使用mmdeploy部署的全过程_yuanjiaqi_k的博客-CSDN博客\n",
    "\n",
    "https://blog.csdn.net/yuanjiaqi_k/article/details/126153117\n",
    "\n",
    "\n",
    "2. 学懂 ONNX，PyTorch 模型部署再也不怕！-阿里云开发者社区\n",
    "\n",
    "https://developer.aliyun.com/article/914229?spm=a2c6h.13262185.profile.12.68ff5b1f4XaznM\n",
    "\n",
    "3. MMDeploy部署实战系列【第五章】：Windows下Release x64编译mmdeploy(C++)，对TensorRT模型进行推理 - gy77 - 博客园\n",
    "\n",
    "https://www.cnblogs.com/gy77/p/16523947.html\n",
    "\n",
    "4. 记录mmdeploy部署fastscnn到ncnn并量化 - 知乎\n",
    "\n",
    "https://zhuanlan.zhihu.com/p/567319765"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 联通域分析\n",
    "connected = cv2.connectedComponentsWithStats(np.uint8(pred_mask), connectivity=4)\n",
    "\n",
    "# 连通域个数（第一个有可能是全图，可以忽略）\n",
    "connected[0]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 用整数表示每个连通域区域\n",
    "connected[1].shape"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "np.unique(connected[1])"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "plt.imshow(connected[1])\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 每个连通域外接矩形的左上角X、左上角Y、宽度、高度、面积\n",
    "connected[2]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 每个连通域的质心坐标\n",
    "connected[3]"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 获取测试集标注\n",
    "label = mmcv.imread('Glomeruli-dataset/masks/VUHSK_1702_39.png')\n",
    "label_mask = label[:,:,0]\n",
    "label_mask.shape"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "np.unique(label_mask)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "plt.imshow(label_mask)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 测试集标注\n",
    "label_mask.shape"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 语义分割预测结果\n",
    "pred_mask.shape"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 真实为前景，预测为前景\n",
    "TP = (label_mask == 1) & (pred_mask==1)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 真实为背景，预测为背景\n",
    "TN = (label_mask == 0) & (pred_mask==0)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 真实为前景，预测为背景\n",
    "FN = (label_mask == 1) & (pred_mask==0)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 真实为背景，预测为前景\n",
    "FP = (label_mask == 0) & (pred_mask==1)"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "plt.imshow(TP)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "confusion_map = TP * 255 + FP * 150 + FN * 80 + TN * 10\n"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "plt.imshow(confusion_map)\n",
    "plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "# 混淆矩阵\n",
    "from sklearn.metrics import confusion_matrix\n",
    "confusion_matrix_model = confusion_matrix(label_map.flatten(), pred_mask.flatten())"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "import itertools\n",
    "def cnf_matrix_plotter(cm, classes, cmap=plt.cm.Blues):\n",
    "    \"\"\"\n",
    "    传入混淆矩阵和标签名称列表，绘制混淆矩阵\n",
    "    \"\"\"\n",
    "    plt.figure(figsize=(10, 10))\n",
    "\n",
    "    plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "    # plt.colorbar() # 色条\n",
    "    tick_marks = np.arange(len(classes))\n",
    "\n",
    "    plt.title('Confusion Matrix', fontsize=30)\n",
    "    plt.xlabel('Pred', fontsize=25, c='r')\n",
    "    plt.ylabel('True', fontsize=25, c='r')\n",
    "    plt.tick_params(labelsize=16) # 设置类别文字大小\n",
    "    plt.xticks(tick_marks, classes, rotation=90) # 横轴文字旋转\n",
    "    plt.yticks(tick_marks, classes)\n",
    "\n",
    "    # 写数字\n",
    "    threshold = cm.max() / 2.\n",
    "    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
    "        plt.text(j, i, cm[i, j],\n",
    "                 horizontalalignment=\"center\",\n",
    "                 color=\"white\" if cm[i, j] > threshold else \"black\",\n",
    "                 fontsize=12)\n",
    "\n",
    "    plt.tight_layout()\n",
    "\n",
    "    plt.savefig('混淆矩阵.pdf', dpi=300) # 保存图像\n",
    "    plt.show()"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [
    "cnf_matrix_plotter(confusion_matrix_model, classes, cmap='Blues')"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "markdown",
   "source": [
    "# 模型部署\n",
    "\n",
    "此处实验不理想，时间有限，就搜集一些文档资料吧\n",
    "\n",
    "win10下mmsegmentation的安装训练以及使用mmdeploy部署的全过程_yuanjiaqi_k的博客-CSDN博客\n",
    "\n",
    "https://blog.csdn.net/yuanjiaqi_k/article/details/126153117\n",
    "\n",
    "\n",
    "学懂 ONNX，PyTorch 模型部署再也不怕！-阿里云开发者社区\n",
    "\n",
    "https://developer.aliyun.com/article/914229?spm=a2c6h.13262185.profile.12.68ff5b1f4XaznM\n",
    "\n",
    "MMDeploy部署实战系列【第五章】：Windows下Release x64编译mmdeploy(C++)，对TensorRT模型进行推理 - gy77 - 博客园\n",
    "\n",
    "https://www.cnblogs.com/gy77/p/16523947.html\n",
    "\n",
    "记录mmdeploy部署fastscnn到ncnn并量化 - 知乎\n",
    "\n",
    "https://zhuanlan.zhihu.com/p/567319765"
   ],
   "metadata": {
    "collapsed": false
   }
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "outputs": [],
   "source": [],
   "metadata": {
    "collapsed": false
   }
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
